OleDbDataReader跳过第一条记录

时间:2015-09-01 09:14:37

标签: c# oledb oledbcommand oledbdatareader

我有以下代码:

spreadSheetName

xlsFileConnection参数中,我保留了我的文件名。

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source='<directory path>'; Extended Properties='text; HDR=No; FMT=Delimited'" 的连接字符串设置为

while (xlsReader.Read())

当我开始执行HDR时,我从第2行开始,但不从数据源开始#1。

第一个建议是3. Allow restricted operations with full administration rights参数的值无效但看起来没问题。

1 个答案:

答案 0 :(得分:0)

有更好,更简单的方法来阅读xlsx文件,如果我是你,我会从nuget中获取closedXML并将此代码读取到excel文件到数据表中

public void ProcessExcel(string fileName)
    {
        _dt = ImportSheet(fileName);
        dgContacts.ItemsSource = _dt.DefaultView;
    }

public static DataTable ImportSheet(string fileName)
    {
        var datatable = new DataTable();
        var workbook = new XLWorkbook(fileName);
        var xlWorksheet = workbook.Worksheet(1);
        var range = xlWorksheet.Range(xlWorksheet.FirstCellUsed(), xlWorksheet.LastCellUsed());

        var col = range.ColumnCount();
        var row = range.RowCount();

        datatable.Clear();
        for (var i = 1; i <= col; i++)
        {
            var column = xlWorksheet.Cell(1, i);
            datatable.Columns.Add(column.Value.ToString());
        }

        var firstHeadRow = 0;
        foreach (var item in range.Rows())
        {
            if (firstHeadRow != 0)
            {
                var array = new object[col];
                for (var y = 1; y <= col; y++)
                {
                    array[y - 1] = item.Cell(y).Value;
                }

                datatable.Rows.Add(array);
            }
            firstHeadRow++;
        }
        return datatable;
    }

根据需要从数据表中获取数据。

这是实时和有效的代码,因此您只需要复制并粘贴