这是我读取上传的 Excel 文件的代码。在过去的 3 个月里,它工作得非常好。
var connectionString = GetOleDbConnectionString(file);
using (var dataAdapter = new OleDbDataAdapter("select * from [Sheet1$]", connectionString))
{
dataAdapter.Fill(ds, tableCount.ToString());
}
private static string GetOleDbConnectionString(string file)
{
var fileExtension = Path.GetExtension(file);
if (fileExtension.EqualsCCIC(".xlsx"))
{
return @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;".F(file);
}
}
问题:上传的 excel 文件将“StartDate”作为第一列。但是这一列也有员工姓名和日期(我需要阅读这个员工姓名来处理这张表)。
我遇到了一个新的 Excel 文件(Excel2007 .xlsx)。当我上传新文件(同时包含员工姓名和日期)时,它只是从列中读取日期并忽略员工姓名。我的数据集(在调试时)将数据表中的那些单元格显示为空字符串。根据业务逻辑,我需要知道这些日期属于哪个员工。我删除了整个工作表的锁(单元格格式>>保护>>锁)但仍然没有用。我怎么解决这个问题?我没有线索...
它正在成功读取旧文件(2007 .xlsx) 我不明白是什么让 OLEDB 在日期列中隐藏字符串?