[英]Retrieve data from excel “csv format” similar to linq take skip
我需要根据行号从CSV文件中检索特定部分
例如:从第5
到第12
行
我正在使用OleDbConnection
并尝试使用此查询:
select * from [sheet1.csv$A5:A12]
但这是行不通的。
C#代码:
var filename = @"C:\Users\A\Desktop\passwords.csv";
var connString = string.Format(
@"Provider=Microsoft.Jet.OleDb.4.0; Data Source={0};Extended Properties=""Text;HDR=YES;FMT=Delimited""",
Path.GetDirectoryName(filename)
);
using (var conn = new OleDbConnection(connString))
{
conn.Open();
var query = "SELECT * FROM [" + Path.GetFileName(filename) + "$A5:A12]";
using (var adapter = new OleDbDataAdapter(query, conn))
{
var ds = new DataSet("CSV File");
adapter.Fill(ds);
}
}
错误
The Microsoft Jet database engine could not find the object 'passwords.csv$A5:A12'. Make sure the object exists and that you spell its name and the path name correctly.
这显示了同时使用StreamReader(记住它只是一个文本文件)和Jet驱动程序的示例:
http://www.codeproject.com/Articles/27802/Using-OleDb-to-Import-Text-Files-tab-CSV-custom
因此,丢失"$A5:A12]
位,而使用DataReader。然后调用Read方法5次以移至第五行。
我不是C#程序员,只是一个不错的googler。
而不是使用OleDbConnection
我只是使用File Class
var lines = File.ReadLines(filename);
var rows = lines.Skip(4).Take(8);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.