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

时间:2017-08-16 16:45:12

标签: c# excel ado.net

我需要选择工作表名称当我使用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();

如何选择工作表的名称

1 个答案:

答案 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);