我正在尝试将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;
}
}
如果你还没有这样做,你可以尝试使用Worksheet.Cell [x,y]获取单元格的内容。文本强制输出为字符串文字,因此它会跳过截断