我需要选择工作表名称当我使用C#中的ADO.net将数据从Excel导入数据库时,这是我导入Excel文件的方式,我无法选择工作表名称
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 :(得分: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;
}
在我看来,它生成的数据集内部有N个DataTable对象,每个对象都有一个表名,表示在调用构造函数时给表单赋予的名称:new DataTable(_workbook.Sheets[ind].Name);
您调用了DataSet result
。因此,此代码将列出数据集内部表的名称:
foreach(DataTable dt in result.Tables)
Console.Out.WriteLine(dt.TableName);