2017-08-16 137 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'。点击显示的放大镜图标... –