修改DataTable中某列的数据类型.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改DataTable中某列的数据类型.相关的知识,希望对你有一定的参考价值。
DataTable中已经有数据,某列类型是Double,我想修改成String,该如何操作?
DataTable中已经有数据,三楼的答案恐怕不行吧
/// 修改数据表DataTable某一列的类型和记录值(正确步骤:1.克隆表结构,2.修改列类型,3.修改记录值,4.返回希望的结果)
/// </summary>
/// <param name="argDataTable">数据表DataTable</param>
/// <returns>数据表DataTable</returns>
private DataTable UpdateDataTable(DataTable argDataTable)
DataTable dtResult = new DataTable();
//克隆表结构
dtResult = argDataTable.Clone();
foreach (DataColumn col in dtResult.Columns)
if (col.ColumnName == "RQ")
//修改列类型
col.DataType = typeof(String);
foreach (DataRow row in argDataTable.Rows)
DataRow rowNew = dtResult.NewRow();
rowNew["DTBM"] = row["DTBM"];
//修改记录值
rowNew["RQ"] = Convert.ToDateTime(row["RQ"]).ToString("yyyy-MM-dd").ToString();
rowNew["DWBM"] = row["DWBM"];
rowNew["DWMC"] = row["DWMC"];
rowNew["YYID"] = row["YYID"];
rowNew["YYMC"] = row["YYMC"];
rowNew["YXCL"] = row["YXCL"];
dtResult.Rows.Add(rowNew);
return dtResult;
参考技术A VB:
Dim
dt
As
New
DataTable
Dim
dc
As
DataColumn
=
dt.Columns(i)
'i就是第几列或者用列名也可以
dc.DataType
=
Type.GetType("System.String")
C#:
DataTable
dt
=
new
DataTable();
DataColumn
dc
=
dt.Columns(i);//i就是第几列或者用列名也可以
dc.DataType
=
Type.GetType("System.String");
你可以试下,double转string应该是可以的,不知道你为什么要这么做 参考技术B 用dt.Column[i].后面应该有相应的属性的 参考技术C for(int i=0;i<dt.rows.count;i++)
dt.rows[i]["某列"]=conver.ToString(dt.rows[i]["某列"])
参考技术D VB:
Dim dt As New DataTable
Dim dc As DataColumn = dt.Columns(i) 'i就是第几列或者用列名也可以
dc.DataType = Type.GetType("System.String")
C#:
DataTable dt = new DataTable();
DataColumn dc = dt.Columns(i);//i就是第几列或者用列名也可以
dc.DataType = Type.GetType("System.String");
你可以试下,double转string应该是可以的,不知道你为什么要这么做本回答被提问者采纳
Python-工具-批量替换EXCLE文件中某列的值
由于工作的原因,经常需要查询统计各地数据,有时结果收集上来后发现需要对其中某些列的数据进行转换,例如将代码值转成中文含义。
重新统计需要花费时间和运维精力,所以自己写了一个简单的替换脚本。当然,理想状态还是在查询统计前就把要求确认。
下面的代码复制到.py文件中,安装完成Python后,安装必要的包(xlrd、xlutils)就可以使用了。注意的是,需要替换的所有文件需和脚本文件同一目录。
(脚本只能处理xls扩展名的文件,因为对xlsx处理可用的Python包没找到,但是xlsx的可以批量替换扩展名再进行处理,批量替换扩展名一行命令就搞定,不会的可以Bing一下)
from xlutils.copy import copy import xlrd import os import sys print("要替换的文件需与脚本同一目录") a = input("输入替换前的内容 \n") b = input("输入替换后的内容 \n") c = input("输入替换是第几列 \n") c = int(c) - 1 #当前路径 print(sys.path[0]) for files in os.walk(sys.path[0]): for file in files[2]: #print(file[-3:]) if(file[-3:] == ‘xls‘): #1、打一要修改的excel #2、再打开另一个excel #3、把第一个excel里面修改东西写到第二个里头 #4、把原来的excel删掉,新的excel名改成原来的名字 book = xlrd.open_workbook(file) table1 = book.sheets()[0] nr = table1.nrows nc = table1.ncols num = 0 #复制一个excel new_book = copy(book) #通过获取到新的excel里面的sheet页 sheet = new_book.get_sheet(0) for i in range(0,nr): #print(str(table1.cell(i,c).value)) if(str(table1.cell(i,c).value) == a): #写入excel,第一个值是行,第二个值是列 sheet.write(i, c, b) num = num + 1 #保存新的excel,保存excel必须使用后缀名是.xls的,不是能是.xlsx的 new_book.save(‘2.xls‘) #删除原有 os.remove(file) #将新文件重命名原有文件 os.rename(‘2.xls‘,file) print(file + " 替换完成 共替换"+ str(num) + "条") ex = input("是否退出,Y or N ? \n") if(ex == ‘Y‘): exit()
以上是关于修改DataTable中某列的数据类型.的主要内容,如果未能解决你的问题,请参考以下文章