我正在制作另一个 Windows 窗体应用程序,但发生了一些奇怪的事情,第一个例子我有一个值 0076464688334,在我的 excel 表中我正在阅读它们使用..
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + fileName + "';Extended Properties=Excel 12.0;");
MyConnection.Open();
myCommand.Connection = MyConnection;
DataSet ds = new DataSet();
String qry = "SELECT number FROM [Sheet1$]";
OleDbDataAdapter odp = new OleDbDataAdapter(qry, MyConnection);
odp.Fill(ds);
不,当我拥有数据集中的所有值时,我会循环它们 n 做一些事情,但问题是我上面提到的值,所有前面为零的值都变得像。
0076464688334 = 76464688334
我用 %0 替换 0 并在代码 %0 中用 0 替换它并解决了,现在另一个问题是我有一个值,它正在变成...
824968717929 = 8.2496871793e+011
这些是条形码,我需要完全匹配,找不到解决方法,请帮忙:)。
先谢谢大家..
附加代码:
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (ds.Tables[0].Rows[i][0].ToString() != "" )
{
googleList.Add(ds.Tables[0].Rows[i][0].ToString().Replace("%0", "0"));
// EbayList.Add(ds.Tables[0].Rows[i][0].ToString());
string tmp = string.Empty;
tmp = ds.Tables[0].Rows[i][0].ToString().Replace("%0","0");
最佳答案
您应该更改 excel 中单元格的类型,因为单元格中的值已转换为简单数字。
为此,您可以将格式设置为文本,然后使用阅读器将其映射为字符串。
或者,您可以使用 COM 接口(interface)来读取您的电子表格或试试这个:
如果它们是开放办公格式(.XLSX 文件),您可以使用
关于c# - 读取 excel 但值以不同的格式出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388168/