簡體   English   中英

GetColumnName()LinqToExcel for csv文件拋出錯誤Microsoft Jet數據庫引擎找不到對象'Sheet1 $ .txt'

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM