C# 使用C读取锁定的Excel(.xlsx)文件#
这是我读取上传Excel文件的代码。在过去的三个月里,它工作得非常好C# 使用C读取锁定的Excel(.xlsx)文件#,c#,excel,parsing,C#,Excel,Parsing,这是我读取上传Excel文件的代码。在过去的三个月里,它工作得非常好 var connectionString = GetOleDbConnectionString(file); using (var dataAdapter = new OleDbDataAdapter("select * from [Sheet1$]", connectionString)) { dataAdapter.Fill(ds, tableCount.ToString()); } priva
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在日期列中隐藏字符串?那么你是说新的excel文件是问题所在?如果是的话
- 检查文件中的数据(特别是“员工姓名”列中的前8行)
- 将数据从新文件复制到已知可用的文件
在上面的链接中查看ABHI的答案(特别是第1点和第2点)。谢谢,我刚刚修改了我的连接字符串。包括HDR=否;扩展属性中的IMEX=1。。