2017-04-07 30 views
1

我試圖按照與Excel文件中數組相同的順序獲取所有工作表名稱。目前,我達到如下單獨所有表:按順序獲取Excel文件中的所有工作表名稱

var pathToExcel = @"C:\Users\Desktop\Everything.xlsx"; 
var sheetName = "sheet 1"; 
var destinationPath = @"C:\Users\Desktop\sheet1.json"; 
var connectionString = String.Format(@" 
      Provider=Microsoft.ACE.OLEDB.12.0; 
      Data Source={0}; 
      Extended Properties=""Excel 12.0 Xml;HDR=YES"" 
     ", pathToExcel); 

我想知道如何得到數組中的所有工作表名稱。

回答

3

試試這個,

OleDbConnection conn = new OleDbConnection(connectionString); 
conn.Open(); 
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
String[] sheetNames = new String[dt.Rows.Count]; 
int i = 0; 
foreach (DataRow row in dt.Rows) 
{ 
    sheetNames[i] = row["TABLE_NAME"].ToString(); 
    i++; 
} 
2

我建議你通過的NuGet添加軟件包EPPlus並使用下面的代碼片段

using (var package = new ExcelPackage("c:\\yourfile.xlsx")) 
    { 
     return package.Workbook.Worksheets.Select(x => x.Name); 
    } 
相關問題