[英]C# Winform Excel Reading through a query
this is my first time to ask question. 这是我第一次问问题。 So please be gentle on me :) 所以请对我温柔:)
My problem is, I want to format an excel file generated by our time and attendance terminal. 我的问题是,我想格式化由我们的考勤终端生成的Excel文件。 Here is the generated excel file and some description of my problem: 这是生成的excel文件和我的问题的一些描述:
What I want to do is read that excel file using C# Winform and format it as the way way I need it. 我要做的是使用C#Winform读取excel文件并将其格式化为我需要的方式。
My Problems are: 我的问题是:
Last problem, and will probably explain it all. 最后一个问题,可能会全部解释。 what I really want to do is use OleDbConnection and my command will be look like this : 我真正想做的是使用OleDbConnection,我的命令将如下所示:
"SELECT DISTINCT [0$], Convert([1$], Date), MIN(Convert([1$], Time)), MAX(Convert([1$], Time)) FROM [0$] GROUP BY [0$], Convert([1$], Date)" “选择DISTINCT [0 $],Convert([1 $],Date),MIN(Convert([1 $],Time)),MAX(Convert([1 $],Time))FROM [0 $] GROUP BY [0 $],Convert([1 $],Date)“
Note : [0$] and [1$], are the index of either the columns or the sheets 注意:[0 $]和[1 $]是列或工作表的索引
What I need need is to generate a file that will show the employees attendance that will format with date and there first Time IN for the Day and there last Time Out. 我需要生成一个文件来显示员工的出勤情况,该文件将按日期格式设置,并有一天的第一时间输入和最后的时间输出。 Please Look the image below for the idea of the output. 请查看下图以了解输出的想法。
I've try to search but I'm not able to find a solution that will fits on what I need. 我已经尝试搜索,但是找不到适合我需要的解决方案。
Hope that anyone can help me. 希望任何人都能帮助我。 Thanks! 谢谢!
For question: 问题:
DateTableName(or Sheet Name)
or Columns
in SQL. Q2:与第一个相同,我没有办法使用DateTableName(or Sheet Name)
或SQL中的Columns
使用索引。 These steps are how to get the expected data: 这些步骤是如何获取期望的数据:
Sheet Name
; 从Excel文件读取所有数据需要知道工作Sheet Name
; empty
, null
or space-string
but added to rows; 过滤无效数据,因为有很多列,值是empty
, null
或space-string
但已添加到行中; Linq
. 使用Linq
查询数据。 Hope that my answer can help you. 希望我的回答能对您有所帮助。
Reference code: 参考代码:
public void Test() { string filePath = $"{Environment.CurrentDirectory}//test20170206.xls"; string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'"; //connection excel OleDbConnection conn = new OleDbConnection(conStr); conn.Open(); //get all sheel from excel file DataTable tb = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); foreach (DataRow row in tb.Rows) { Console.WriteLine(row["TABLE_NAME"]); //using index in row for (int i=0;i p.Datetime).ToLongTimeString(), TimeMax = g.Max(p => p.Datetime).ToLongTimeString() }; } public class Model20170206 { public int Id { get; set; } public DateTime Datetime { get; set; } public string Value1 { get; set; } public string Value2 { get; set; } public string Value3 { get; set; } public string Value4 { get; set; } }
Practice steps: 练习步骤:
1,2017-01-28 03:47:54,1,1,1,0 2,2017-01-29 04:58:18,1,0,2,0 3,2017-01-28 08:44:43,1,1,3,0 4,2017-01-28 05:47:56,1,0,4,0 0,2017-02-05 12:12:53,1,1,5,0 1,2017-01-31 12:02:24,1,0,6,0 2,2017-02-05 12:30:34,1,1,7,0 3,2017-02-04 02:30:08,1,0,8,0 4,2017-02-01 11:39:53,1,1,9,0 0,2017-02-05 07:45:58,1,0,10,0 1,2017-02-05 03:01:46,1,1,11,0 2,2017-02-02 09:22:17,1,0,12,0 3,2017-01-30 03:05:46,1,1,13,0 4,2017-02-04 09:02:21,1,0,14,0 0,2017-02-03 07:58:20,1,1,0,0 1,2017-01-29 07:53:48,1,0,1,0 2,2017-01-29 12:41:25,1,1,2,0 3,2017-02-06 02:58:50,1,0,3,0 4,2017-01-28 11:06:47,1,1,4,0 0,2017-02-04 10:40:18,1,0,5,0 1,2017-01-31 12:57:24,1,1,6,0 2,2017-02-03 12:28:38,1,0,7,0 3,2017-02-01 06:48:23,1,1,8,0 4,2017-01-28 12:42:59,1,0,9,0 0,2017-02-04 10:34:44,1,1,10,0 1,2017-02-06 06:38:31,1,0,11,0 2,2017-02-05 08:40:26,1,1,12,0 3,2017-01-31 01:56:32,1,0,13,0 4,2017-02-05 11:13:11,1,1,14,0 0,2017-01-29 10:34:58,1,0,0,0 1,2017-02-02 04:01:18,1,1,1,0 2,2017-02-06 01:08:09,1,0,2,0 3,2017-01-28 07:24:11,1,1,3,0 4,2017-02-02 08:25:50,1,0,4,0 0,2017-01-28 08:01:13,1,1,5,0 1,2017-02-03 08:33:10,1,0,6,0 2,2017-01-29 03:47:03,1,1,7,0 3,2017-02-05 12:36:56,1,0,8,0 4,2017-02-04 06:10:55,1,1,9,0 0,2017-01-29 05:13:43,1,0,10,0 1,2017-02-06 06:35:18,1,1,11,0 2,2017-01-31 08:23:25,1,0,12,0 3,2017-02-03 04:25:10,1,1,13,0 4,2017-01-31 04:31:34,1,0,14,0 0,2017-01-30 10:03:42,1,1,0,0 1,2017-01-30 11:07:57,1,0,1,0 2,2017-02-05 11:17:45,1,1,2,0 3,2017-02-02 12:59:56,1,0,3,0 4,2017-01-31 04:49:48,1,1,4,0 0,2017-02-02 01:02:05,1,0,5,0 1,2017-01-31 11:16:52,1,1,6,0 2,2017-02-03 09:53:51,1,0,7,0 3,2017-01-31 04:02:09,1,1,8,0 4,2017-01-28 05:06:38,1,0,9,0 0,2017-01-28 09:18:28,1,1,10,0 1,2017-02-01 04:26:56,1,0,11,0 2,2017-02-03 11:17:34,1,1,12,0 3,2017-02-06 09:09:23,1,0,13,0 4,2017-01-30 08:20:51,1,1,14,0 0,2017-02-05 06:42:01,1,0,0,0 1,2017-02-01 04:29:38,1,1,1,0 2,2017-02-02 05:28:21,1,0,2,0 3,2017-02-05 04:24:37,1,1,3,0 4,2017-01-31 07:59:14,1,0,4,0 0,2017-01-31 10:38:59,1,1,5,0 1,2017-02-06 03:01:17,1,0,6,0 2,2017-02-02 08:52:25,1,1,7,0 3,2017-02-02 07:47:35,1,0,8,0 4,2017-02-04 07:55:27,1,1,9,0 0,2017-02-06 12:32:50,1,0,10,0 1,2017-01-28 11:01:04,1,1,11,0 2,2017-01-30 01:12:09,1,0,12,0 3,2017-01-29 03:42:15,1,1,13,0 4,2017-02-05 07:00:44,1,0,14,0 0,2017-02-05 05:12:40,1,1,0,0 1,2017-01-28 11:28:18,1,0,1,0 2,2017-02-05 09:11:08,1,1,2,0 3,2017-01-29 09:11:08,1,0,3,0 4,2017-02-04 03:46:57,1,1,4,0 0,2017-02-02 06:21:06,1,0,5,0 1,2017-01-28 02:15:06,1,1,6,0 2,2017-01-31 02:34:50,1,0,7,0 3,2017-02-05 10:14:23,1,1,8,0 4,2017-01-31 05:05:26,1,0,9,0 0,2017-02-05 12:25:46,1,1,10,0 1,2017-02-05 07:15:07,1,0,11,0 2,2017-02-03 04:00:19,1,1,12,0 3,2017-02-06 03:25:13,1,0,13,0 4,2017-02-02 06:01:42,1,1,14,0 0,2017-02-03 04:41:57,1,0,0,0 1,2017-02-06 10:23:15,1,1,1,0 2,2017-01-29 07:45:19,1,0,2,0 3,2017-02-03 11:10:25,1,1,3,0 4,2017-02-05 12:36:33,1,0,4,0 0,2017-02-03 01:51:44,1,1,5,0 1,2017-02-01 08:01:16,1,0,6,0 2,2017-02-01 05:06:28,1,1,7,0 3,2017-01-31 03:20:15,1,0,8,0 4,2017-02-05 07:00:14,1,1,9,0 0,2017-01-31 08:10:04,1,0,10,0 1,2017-02-03 03:23:12,1,1,11,0 2,2017-01-31 10:24:29,1,0,12,0 3,2017-02-04 06:12:08,1,1,13,0 4,2017-01-31 05:24:38,1,0,14,0 0,2017-02-01 08:55:20,1,1,0,0 1,2017-01-29 04:59:03,1,0,1,0 2,2017-02-02 01:05:55,1,1,2,0 3,2017-02-01 10:09:05,1,0,3,0 4,2017-01-30 01:01:37,1,1,4,0 0,2017-02-06 10:57:49,1,0,5,0 1,2017-02-01 08:23:28,1,1,6,0 2,2017-02-01 09:00:45,1,0,7,0 3,2017-01-30 12:16:46,1,1,8,0 0,2017-02-04 06:06:36,1,0,10,0 1,2017-02-01 09:31:02,1,1,11,0 ... more ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.