我正在尝试将excel文件读取到数据表中,并且成功获取了数据,但是在将数据读取到数据表中时十进制值被截断了
因此,如果我的单元格值为64.00,那么我在数据表中得到的是64,而不是64.00。
我尝试将excel单元格值格式设置为“文本”,但是没有用。
下面是我正在处理的代码。
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;
}
}
答案 0 :(得分:0)
如果您还没有这样做,可以尝试使用Worksheet.Cell [x,y] .Text获取单元格的内容。 这会强制将输出转换为字符串文字,因此在读取时会跳过截断