我正在开发一个生物识别出勤项目。我有一个拇指冲孔机,以excel格式导出每日报告,以便在工作人员的时间和时间内完成。
报告格式:
现在我想开发一个C#应用程序来读取这个文件,并显示一些关于出勤的报告。我尝试将这个文件转换为csv并在代码下面使用但是输出是空白的。任何帮助都会感谢指导如何阅读这个file(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");
}
}
}
}
答案 0 :(得分:1)
你可以找到很多方法来做到这一点
对于CSV,您可以使用 http://kbcsv.codeplex.com/
要读取Excel,您需要将Com组件添加到项目中,即Microsoft Excel 12.0对象库 例如 你可以参考 Reading Excel files from C#
e.g。代码
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);
}
}
}
答案 1 :(得分:1)
使用“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,
};
答案 2 :(得分:0)
var csv = new CsvReader( File.OpenRead( "file.csv" ) );
var myCustomObjects = csv.GetRecords<CustomObject>();
答案 3 :(得分:0)
为此,我建议LightweightExcelReader。要阅读示例中的电子表格,您可以执行以下操作:
julia> findfirst(vec(all(x .<= y; dims=2)))
2
免责声明:我是LightweightExcelReader的作者。