【发布时间】:2011-03-28 08:40:56
【问题描述】:
我在 Excel 工作表中有几列数据,我必须将它们导入我的应用程序。
我使用 -
string strConn;
OleDbDataAdapter oledaExcelInfo;
strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + Server.MapPath(strSavePath + strRepFileName) + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1\"";
oledaExcelInfo = new OleDbDataAdapter("SELECT * FROM [Book1]", strConn);
dsetExcelInfo = new DataSet();
oledaExcelInfo.Fill(dsetExcelInfo, "CCInfo");
虽然这会成功导入数据,但有时会错误地导入数据,即有时可以将数字 1234567 导入为 1.23E+06
如果excel文件中的数据是'1234567而不是1234567就可以解决(加单引号)
我现在正在尝试操作从 excel 中获取的数据,以便在导入数据之前以编程方式将 ' 附加到所有值以防止错误导入。
我什至尝试使用 OleDbDataAdapter.Update,但我想这不会有帮助,因为这会在导入数据后发生。对吗?
我可以操作数据以导入正确的数据吗?我该怎么做?
【问题讨论】:
-
您是否尝试将单元格的格式设置为邮政编码,我知道这听起来很奇怪,但这似乎是让长数字工作的合理好方法。 (邮政编码是特殊格式,您可能需要从区域设置下拉菜单中选择美国英语)
-
谢谢,我会尝试这样做。但是,该应用程序已经有很多用户,可能无法将单元格格式设置为邮政编码。 :( 我将不得不以编程方式处理这个问题。或者,我可以在通过我的代码导入之前格式化单元格吗?
-
你可以试试:) ... Range("B1:B2").Select ... Selection.NumberFormat = "00000"
标签: c# excel import npoi oledbdataadapter