【C#】C#读取Excel中的数据
来源:互联网 发布:csgo cpu优化 编辑:程序博客网 时间:2024/04/30 03:18
先贴代码:
private void btnStart_Click(object sender, EventArgs e) { if (txtPath.Text != "") { string conStr = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + txtPath.Text + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; using (OleDbConnection con = new OleDbConnection(conStr)) { string str1 = "select * from [全部电脑类资产$] where [ERP资产编号] is not null"; try { con.Open(); } catch (Exception ex) { throw new Exception("连接Excel出错:" + ex.Message); } using (OleDbDataAdapter da = new OleDbDataAdapter(str1, con)) { DataTable dt = new DataTable(); da.Fill(dt); //removeEmpty(dt); dataGridView1.DataMember = "[全部电脑类资产$]"; dataGridView1.DataSource = dt; } } } else { MessageHelper.WRONG("请先选择导入文件"); } }
说明:
1.连接字符串中的:Microsoft.Ace.OleDb.12.0。既可以连接xls文件又可以连接xlsx文件,不建议使用Microsoft.Jet.OLEDB.4.0了,这个只能连接xls的excel.
2.连接字符串中的txtPath.Text就是你的excel文件的路径名,如:C:\Users\Jim\Desktop\2016.2.24.xlsx。其中的HDR=YES,是声明Excel表中的第一行是列名而不是数据,HDR=NO,则相反。
3.如果读取到的Excel中有空白行数据,就用sql语句中的is notnull过滤掉。如:
select * from [全部电脑类资产$] where [ERP资产编号] isnot null。
或者采用如下方法,移除DataTable中的空白行
private void removeEmpty(DataTable dt) { List<DataRow> removelist = new List<DataRow>(); for (int i = 0; i < dt.Rows.Count; i++) { bool rowdataisnull = true; for (int j = 0; j < dt.Columns.Count; j++) { if (!string.IsNullOrEmpty(dt.Rows[i][j].ToString().Trim())) { rowdataisnull = false; } } if (rowdataisnull) { removelist.Add(dt.Rows[i]); } } for (int i = 0; i < removelist.Count; i++) { dt.Rows.Remove(removelist[i]); } }
4.由于Microsoft.Ace.OleDb.12.0与Microsoft.Jet.OLEDB.4.0都不支持64位系统,所以如果出现“xxxxxx未注册”之类的问题,请将项目配置为x86平台。如果不想配置,则下载Microsoft.Ace.OleDb.12.0的64位驱动,点击下载。
By Jim
0 0
- 【C#】C#读取Excel中的数据
- C#读取excel中的数据
- C# 读取Excel中的数据
- C#读取Excel中的数据
- C#读取EXCEL中的数据(2)
- 使用c#读取excel中的数据
- Visual C#读取Excel表格中的数据
- Visual C#读取Excel表格中的数据
- C#读取Excel表格中的数据
- C#读取Excel数据
- C#读取Excel数据
- C#读取Excel数据
- C#读取Excel数据
- C#读取Excel数据
- C#读取Excel数据
- C#读取Excel数据
- C#读取Excel数据
- C#读取Excel数据
- linux makefile (1)
- 视音频数据处理入门:UDP-RTP协议解析
- C语言判断文件夹或者文件是否存在的方法
- uleb128、sleb128和uleb128p1编码格式介绍
- ElasticSearch学习_陶文6_【03】把 Elasticsearch 当数据库使:简单指标
- 【C#】C#读取Excel中的数据
- PAT basic 1042
- java对象的创建过程
- android:获取手机号码和姓名实现通讯录
- MVC5 学习整理知识点
- Comparable与Comparator的区别
- 【坑】Codeforces Round #345 模拟+乱搞+map
- ListView的BaseAdapter的基本使用和ViewHolder模式的适配
- Codeforces--630A--Again Twenty Five!(水题)