使用Getschema方法获取Excel工作表名称而不进行排序

时间:2013-04-18 11:47:04

标签: c# asp.net excel oledb

我从excel表中将数据插入到Sql表中。 oledbConnection.GetSchema("Table_Name")按排序顺序获取Excel工作表名称。我不希望它们被排序因为我想得到第一张纸以便对它执行一些操作。这是我的代码段。

string con = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel +";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
            OleDbConnection cn = new OleDbConnection(con);
            cn.Open();

            DataTable sheetTable = cn.GetSchema("Tables");
            string strSHeetName = Convert.ToString(sheetTable.Rows[0]["TABLE_NAME"]);

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

试试这段代码,这对我有用......

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelBook = xlApp.Workbooks.Open(filePath); 
string[] excelSheets = new string[excelBook.Worksheets.Count];
int i = 0;
foreach(Microsoft.Office.Interop.Excel.Worksheet wSheet in excelBook.Worksheets)    
{
  excelSheets[i] = wSheet.Name;
  i++;
}

*替换" filePath"与您的文件位置路径...