将Excel数据导入数据表通过将Cell值转换为字符串格式

问题描述 投票:1回答:1

我正在尝试将excel文件读取到数据表,并且我成功获取数据,但是在将数据读取到数据表时会截断十进制值

所以,如果我的单元格值为64.00,那么我在数据表中得到64而不是64.00。

我尝试将excel单元格值格式化为Text,但没有奏效。

以下是我正在处理的代码。

 public static DataTable GetDataTableFromCsv(string path, bool 
 isFirstRowHeader)
    {
        string header = isFirstRowHeader ? "Yes" : "No";

        string pathOnly = System.IO.Path.GetDirectoryName(path);
        string fileName = System.IO.Path.GetFileName(path);

        string sql = @"SELECT * FROM [" + fileName + "]";

        using (OleDbConnection connection = new OleDbConnection(
                  @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly +
                  ";Extended Properties=\"Text;HDR=" + header + "\""))
        using (OleDbCommand command = new OleDbCommand(sql, connection))
        using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
        {
            DataTable dataTable = new DataTable();
            dataTable.Locale = CultureInfo.CurrentCulture;
            adapter.Fill(dataTable);
            return dataTable;
        }
    }
c# excel datatable oledb c#-3.0
1个回答
0
投票

如果你还没有这样做,你可以尝试使用Worksheet.Cell [x,y]获取单元格的内容。文本强制输出为字符串文字,因此它会跳过截断

© www.soinside.com 2019 - 2024. All rights reserved.