你如何获得excel工作簿第一页的名称?

evi*_*ack 3 c# excel

假设您不知道Excel工作簿中第一个工作表的名称.你想找到一种从第一页读取的方法.这个片段有时会起作用,但并非总是如此.只有我吗?或者有没有一个明智的方法来做到这一点?

            MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + inputFile + "';Extended Properties=Excel 8.0;");

            String[] excelSheets = new String[tbl.Rows.Count]; 
            int i = 0;
            foreach (DataRow row in tbl.Rows)
            {
                excelSheets[i] = row["TABLE_NAME"].ToString();
                i++;
            }
            string pageName = excelSheets[0]; 

            OleDbDataAdapter myAdapter = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" + pageName + "]", MyConnection);
Run Code Online (Sandbox Code Playgroud)

注意:我正在寻找第一个工作表的名称.

Jac*_*ams 8

如果您在计算机上安装了Office,为什么不使用Visual Studio Tools for Office(VSTO).这里基本上是获取工作表的代码:

Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook =  app.Workbooks.Open(fileName,otherarguments);
Microsoft.Office.Interop.Excel.Worksheet worksheet =  workbook.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet;
Run Code Online (Sandbox Code Playgroud)

  • 对'workbook.Worksheets [0]'的调用应该是'workbook.Worksheets [1]',因为Excel.Worksheets集合是基础1. (2认同)