【问题标题】:how can get all excel sheet name in c# using OleDbDataAdapter如何使用 OleDbDataAdapter 在 c# 中获取所有 excel 工作表名称
【发布时间】:2017-07-26 01:03:48
【问题描述】:
               _conn = new OleDbConnection(_connectionStrting);
                _conn.Open();
                DataTable dt = _conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                String[] sheetNames = new String[dt.Rows.Count];
                int i = 0;

                foreach (DataRow row in dt.Rows)
                {
                    sheetNames[i] = row["TABLE_NAME"].ToString();
                    comboBox2.Items.Add(sheetNames[i]);
                    i++;
                }

                _conn.Close();

此代码对我有用,但我想知道是否有使用 OleDbDataAdapter 的解决方案

【问题讨论】:

标签: c# excel oledbdataadapter


【解决方案1】:

OleDbDataAdaptor 与工作表名称无关;工作表名称属于 Excel.Workbook,Excel 工作簿属于 Excel.Application。 您需要遍历工作簿工作表名称:

using Excel = Microsoft.Office.Interop.Excel;

Excel.Application xl = new Excel.Application();;
Excel.Workbook wb = xl.Workbooks.Open("WorkBookfullPath", 0, true);

foreach (Excel.Worksheet ws in wb.Worksheets) {
        {
             string wsName = ws.Name;  
        }

这里你并不需要 OleDbDataAdapter,在这种情况下(如果你需要从工作表中读取数据)你可以从 Excel 中读取二维数组(第一维是行,第二维是列):

object[,] data = ws.UsedRange.Value2; // change UsedRange range to your table range, and  you can also use ws.UsedRange.FormulaR1C1

【讨论】:

猜你喜欢
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
相关资源
最近更新 更多