![](/img/trans.png)
[英]The Microsoft Jet database engine could not find the object 'Sheet1$_'
[英]GetColumnName() LinqToExcel for csv file throw error The Microsoft Jet database engine could not find the object 'Sheet1$.txt'
我正在使用linqToExcel dll从读取csv文件并查询csv文件中的数据。 我还从csv修改了列的名称(Header)。
它抛出一条错误消息,如下所示:
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))
{
//For CSV files there are not 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.");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.