在C#中读取csv文件

我正在开发一个生物识别出勤项目。我有一个拇指冲孔机,每天以excel格式输出日常报告,供员工随时随地使用。

报告格式: 在这里输入图像说明

现在我想开发一个C#应用程序来读取这个文件,并显示出席一些报告。我试着将此文件转换为CSV,并使用下面的代码,但输出为空。任何帮助将感谢引导如何读取此文件(XLS / CSV)?

C#代码:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { try { var column1 = new List<string>(); var column2 = new List<string>(); using (var rd = new StreamReader("db.csv")) { while (!rd.EndOfStream) { var splits = rd.ReadLine().Split(';'); column1.Add(splits[0]); column2.Add(splits[1]); } } // print column1 Console.WriteLine("Column 1:"); foreach (var element in column1) Console.WriteLine(element); // print column2 Console.WriteLine("Column 2:"); foreach (var element in column2) Console.WriteLine(element); } catch (Exception ae) { Console.WriteLine(ae); } finally { Console.WriteLine("ok"); } } } } 

你可以find很多这样做的方法

对于CSV,您可以使用http://kbcsv.codeplex.com/

为了阅读Excel,你需要添加COM组件到你的项目,例如Microsoft Excel 12.0 Object Library,例如你可以参考读取Excel文件,从C#

例如代码

 string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;Extended Properties='Excel 8.0;HDR=Yes;'" using(OleDbConnection connection = new OleDbConnection(con)) { connection.Open(); OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection) using(OleDbDataReader dr = command.ExecuteReader()) { while(dr.Read()) { var row1Col0 = dr[0]; Console.WriteLine(row1Col0); } } } 

使用“LinqToExcel” – 那么你可以做这样的事情:

 var book = new LinqToExcel.ExcelQueryFactory(@"C:\Path\File.csv"); var query = from row in book.Worksheet<MyObject>() where row.Status != "Disabled" select new { row.Date, row.Description, }; 

利用csv助手库

 var csv = new CsvReader( File.OpenRead( "file.csv" ) ); var myCustomObjects = csv.GetRecords<CustomObject>();