C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件
C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件
OleDbConnection连接参数: Extended Properties:Excel 2007或以上版本=Excel 12.0 Extended Properties:Excel 2007或以上版本=Excel 8.0 HDR:Excel文件第一条记录作为列头,对应DataTable的字段名称。 C#读取加装Excel 2007(.xlsx)文件: C# Code: /// <summary> /// 根据excle的路径把第一个sheel中的内容放入datatable /// </summary> /// <param name="execlFile"></param> /// <returns></returns> public DataTable ImportExcelXlsx(string execlFile) { // //连接字符串 // //Office 07及以上版本,读取XLSX文件 string connstring = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + execlFile + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'"; //Office 07以下版本,读取xls文件 //string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + execlFile + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';"; using (OleDbConnection conn = new OleDbConnection(connstring)) { conn.Open(); DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字 string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字 string sql = string.Format("SELECT * FROM [{0}]", firstSheetName); //查询字符串 //string sql = string.Format("SELECT * FROM [{0}] WHERE [日期] is not null", firstSheetName); //查询字符串 OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring); DataSet set = new DataSet(); ada.Fill(set); return set.Tables[0]; } } //来源:C/S框架网(www.csframework.com) QQ:23404761 C#读取加装Excel 2003或以下版本(.xls)文件: C# Code: /// <summary> /// 根据excle的路径把第一个sheel中的内容放入datatable /// </summary> /// <param name="execlFile"></param> /// <returns></returns> public DataTable ImportExcelXls(string execlFile) { // //连接字符串 // //Office 07及以上版本,读取XLSX文件 //string connstring = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + execlFile + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'"; //Office 07以下版本,读取xls文件 string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + execlFile + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';"; using (OleDbConnection conn = new OleDbConnection(connstring)) { conn.Open(); DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字 string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字 string sql = string.Format("SELECT * FROM [{0}]", firstSheetName); //查询字符串 //string sql = string.Format("SELECT * FROM [{0}] WHERE [日期] is not null", firstSheetName); //查询字符串 OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring); DataSet set = new DataSet(); ada.Fill(set); return set.Tables[0]; } } //来源:C/S框架网(www.csframework.com) QQ:23404761 测试: C# Code: //测试xls string file = @"C:\Users\Administrator\Downloads\keywordlist_20200308.xls"; DataTable dt = new KeywordBaiduUpload().ImportExcelXls(file); Console.WriteLine("记录数:" + dt.Rows.Count); //测试xlsx string file1 = @"C:\Users\Administrator\Downloads\keywordlist_20200308.xlsx"; DataTable dt1 = new KeywordBaiduUpload().ImportExcelXlsx(file1); Console.WriteLine("记录数:" + dt.Rows.Count); Console.ReadLine(); //来源:C/S框架网(www.csframework.com) QQ:23404761
参考文档:
C# 使用List C#中将数据插入到Excel表中 纯C#代码的Excel读取器(不需要Office Excel Com组件) C#操作Excel合并多个Excel文件 C#将数据导出到Excel汇总 C#序列化/反序列化对象.将对象写入文件,从文件读取对象. C#读取资源文件的图片 C#导出数据到Excel 源码大全 C#获取当前进程的父级进程 C#Winform验证输入框的内容是数字 C# Winform中如何获取父窗体中控件的信息 C# WinForm程序出错的时候,自动重启程序 C# PictureBox设置背景图片及加载图片源码 C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” C# Excel xls文件导入程序Excel数据库通用类XlsFileDB
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |