繁体   English   中英

使用C#从Excel到数据库ADO.net的导入数据中选择空格表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM