gpt4 book ai didi

c# - CSV 文件的 GetColumnName() LinqToExcel 抛出错误 Microsoft Jet 数据库引擎找不到对象 'Sheet1$.txt'

转载 作者:行者123 更新时间:2023-11-30 20:36:36 24 4
gpt4 key购买 nike

我正在使用 linqToExcel dll 从中读取 csv 文件并查询 csv 文件中的数据。我还需要来自 csv 的列名 (Header)。

当我尝试根据 document mentioned 运行以下代码时

它抛出如下错误信息:

Microsoft Jet 数据库引擎找不到对象“Sheet1$.txt”。确保该对象存在并且您正确拼写了它的名称和路径名。

我的代码如下:

string pathToExcelFile = ""
+ @"c:\users\rahul\documents\visual studio 2013\Projects\WebApplication1\WebApplication1\csv\student.csv";

string sheetName = "student";

var excelFile = new ExcelQueryFactory(pathToExcelFile);

//get all sheet names
var sheetNames = excelFile.GetWorksheetNames();

//get column name from csv
var columnNames = excelFile.GetColumnNames(sheetName);

为了获得正确的工作表名称,我尝试使用 excelFile.GetWorksheetNames() 但它返回零记录。

注意:我正在使用 csv 文件,当我在 MS Excel 中打开相同的 csv 文件时,它会显示学生作为工作表名称,即使我也尝试使用 sheet1。

最佳答案

这是我的解决方案:

IEnumerable<string> columnNames;
var workSheetName = excel.GetWorksheetNames().FirstOrDefault();
if (string.IsNullOrEmpty(workSheetName))
{
// CSV files do not have worksheet names
var worksheet = excel.Worksheet();
if (worksheet == null)
{
throw new ApplicationException("Unable to extract data. The file contains no data");
}
var row = worksheet.FirstOrDefault();
if (row == null)
{
throw new ApplicationException("Unable to extract data. The file contains no rows.");
}
columnNames = row.ColumnNames;

}
else
{
columnNames = excel.GetColumnNames(workSheetName);
}

if (columnNames == null || !columnNames.Any())
{
throw new ApplicationException("Unable to extract column information.");
}

关于c# - CSV 文件的 GetColumnName() LinqToExcel 抛出错误 Microsoft Jet 数据库引擎找不到对象 'Sheet1$.txt',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36766969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com