Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C读取锁定的Excel(.xlsx)文件#_C#_Excel_Parsing - Fatal编程技术网

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

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

这是我读取上传Excel文件的代码。在过去的三个月里,它工作得非常好

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。。