[英]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.