[英]select spacific sheet in import data from Excel to database ADO.net using C#
在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();
如何选择工作表名称
这是您正在使用的该库的源代码:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.