按顺序获取Excel文件中的所有工作表名称
问题描述:
我试图按照与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);
我想知道如何得到数组中的所有工作表名称。
答
试试这个,
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++;
}
答
我建议你通过的NuGet添加软件包EPPlus并使用下面的代码片段
using (var package = new ExcelPackage("c:\\yourfile.xlsx"))
{
return package.Workbook.Worksheets.Select(x => x.Name);
}