c# - 读取 excel 但值以不同的格式出现

标签 c# winforms visual-studio-2010 excel

我正在制作另一个 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)来读取您的电子表格或试试这个:

ExcelDataReader

如果它们是开放办公格式(.XLSX 文件),您可以使用

EPP Plus

关于c# - 读取 excel 但值以不同的格式出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388168/

相关文章:

c# - 动态添加和删除 UserControl

c# - 表单未激活时的按键事件

c++ - 为什么 vsperfmon 告诉我被调用函数的包含时间比根函数的包含时间长?

c++ - 新的/免费的行为非常奇怪

visual-studio - ASP.NET 网站或 Web 应用程序中缺少 Visual Studio 2010 工具箱项目?

c# - 接口(interface)方法上的 "The modifier public is not valid for this item"

C# 泛型和约束

c# - 如何在按钮中显示箭头?窗体

c# - 调用所有处理程序后如何提交 UoW

c# - 如果设置了 ItemContainerStyle,则 DataTemplateSelector 不起作用