gpt4 book ai didi

c# - OleDbDataReader 跳过第一条记录

转载 作者:行者123 更新时间:2023-11-30 18:23:25 25 4
gpt4 key购买 nike

我有以下代码:

OleDbDataReader xlsReader =
new OleDbCommand("Select * from [" +spreadSheetName + "]", xlsFileConnection).
ExecuteReader();

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

xlsFileConnection 的连接字符串设置为

"Provider=Microsoft.Jet.OLEDB.4.0; 
Data Source='<directory path>';
Extended Properties='text; HDR=No; FMT=Delimited'"

当我开始执行 while (xlsReader.Read()) 时,我从数据源中获取第 2 行而不是第 1 行。

第一个建议是 HDR 参数值无效,但看起来没问题。

最佳答案

有更好、更简单的方法来读取 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;
}

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

这是实时有效的代码,所以你只需要复制粘贴

关于c# - OleDbDataReader 跳过第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32327766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com