使用 C# 读取锁定的 Excel (.xlsx) 文件

本文关键字:xlsx 文件 Excel 读取 锁定 使用 | 更新日期: 2023-09-27 18:36:07

这是我读取上传的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 文件的第一列包含"开始日期"。但是此列也有员工姓名和日期(我需要阅读此员工姓名来处理此表)。

我遇到了一个新的Excel文件(Excel2007 .xlsx)。当我上传新文件(同时具有员工姓名和日期)时,它仅从列中读取日期并忽略员工姓名。我的数据集将数据表中的那些单元格显示为空字符串(调试时)。根据业务逻辑,我需要知道这些日期属于哪个员工。我删除了整个工作表的锁(单元格格式>>保护>>锁),但仍然没有用。如何解决这个问题?我不知道...

它已成功读取旧文件(2007 .xlsx)我不明白是什么使OLEDB隐藏日期列中的字符串?

使用 C# 读取锁定的 Excel (.xlsx) 文件

所以你是说新的 excel 文件是问题所在?㞖。。。

  • 检查文件中的数据(特别是"员工姓名"列中的前 8 行)
  • 将数据从新文件复制到已知有效的文件

使用 C# 访问 Excel 电子表格偶尔会返回某些单元格的空白值在上面的链接中查看ABHI的答案(特别是第1点和第2点)。