繁体   English   中英

从excel提取“ csv格式”数据,类似于linq跳过

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM