2017-08-16 131 views
0

我需要選擇工作表名稱當我從Excel中導入數據到數據庫使用ADO.net在C#這是我如何導入Excel文件把我不能選擇表名稱從Excel導入數據選擇到數據庫ADO.net使用C#

OpenFileDialog op = new OpenFileDialog(); 
       op.Filter = "Excel Workbook| *.xls;*.xlsx;*.xlsm"; 
       if (op.ShowDialog() == DialogResult.Cancel) 
        return; 
       FileStream stream = new FileStream(op.FileName, FileMode.Open); 
       IExcelDataReader excelreader = ExcelReaderFactory.CreateOpenXmlReader(stream); 
       DataSet result = excelreader.AsDataSet(); 

如何選擇紙張

回答

0

這裏的名字叫該庫中的源代碼,您正在使用:

public System.Data.DataSet AsDataSet(bool convertOADateTime) 
    { 
     if (!_isValid) return null; 

     DataSet dataset = new DataSet(); 

     for (int ind = 0; ind < _workbook.Sheets.Count; ind++) 
     { 
      DataTable table = new DataTable(_workbook.Sheets[ind].Name); 

//table filling code snipped 

      if (table.Rows.Count > 0) 
       dataset.Tables.Add(table); 
      table.EndLoadData(); 
     } 
     dataset.AcceptChanges(); 
     Helpers.FixDataTypes(dataset); 
     return dataset; 
    } 

它看起來對我來說,該數據集我t產生了N個DataTable對象,每個對象都有一個表格名稱,當調用該構造函數時,該表格的名稱將賦予該表格:new DataTable(_workbook.Sheets[ind].Name);

您稱爲DataSet result。此代碼將因此列出的表名數據集內:

foreach(DataTable dt in result.Tables) 
    Console.Out.WriteLine(dt.TableName); 
+0

我不想表的名字,我有在Excel 3張我要採取的數據表3不1 – AShalata

+0

所以當你說「如何選擇表單名稱」時,你不想知道表單名稱?很明顯,我的思維閱讀技能不是他們的......如果你想從工作簿中的第三張表中獲取數據,那麼可能是在'result.Tables [2]'中。運行你的代碼,在調試器的後面暫停它,在'DataSet result = excelreader.AsDataSet();'後面,然後用鼠標指向'result'。點擊顯示的放大鏡圖標... –