在xls excel文件中获取工作表编号

问题描述 投票:-1回答:1

如何获取文件中的工作表数量

  string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=no;IMEX=1;""", openFileDialog1.FileName);   

现在我想知道给定边有多少个[[工作表?

我应该写什么代码?

我怎么知道?

谢谢

c# .net excel xls
1个回答
2
投票
虽然哈里斯·哈桑(Haris Hasan)指出的问题将使您能够提取工作表名称,但如果您只想要工作簿中的工作表数量,则可以使用以下方法:

string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=no;IMEX=1;""", openFileDialog1.FileName); int numberOfSheets = 0; using (OleDbConnection conn = new OleDbConnection(connectionString)) { conn.Open(); DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt != null) { foreach (DataRow row in dt.Rows) { if (row["TABLE_NAME"].ToString().EndsWith("$")) { numberOfSheets++; } } } }


编辑:

或者,对于较短的版本,请使用以下命令(感谢jb帮助我完成了此任务:]

string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=no;IMEX=1;""", openFileDialog1.FileName); int numberOfSheets = 0; using (OleDbConnection conn = new OleDbConnection(connectionString)) { conn.Open(); DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt != null) { numberOfSheets = dt.AsEnumerable().Cast<DataRow>().Where(row => row["TABLE_NAME"].ToString().EndsWith("$")).Count(); } }

© www.soinside.com 2019 - 2024. All rights reserved.