C# Excel xls文件导入程序Excel数据库通用类XlsFileDB
C# Excel xls文件导入程序Excel数据库通用类XlsFileDB
C# Code: /// <summary> /// XLS文件数据库通用类 /// </summary> public class XlsFileDB { protected DbConnection _DbConnection = null; private string _FileName = ""; /// <summary> /// 构造器 /// </summary> /// <param name="xlsFileName">xls文件名</param> public XlsFileDB(string xlsFileName) { _FileName = xlsFileName; if (File.Exists(xlsFileName)) { _DbConnection = CreateConnection(); } else throw new Exception("文件不存在!" + xlsFileName); } /// <summary> /// 取XLS文件所有表名(SHEET) /// </summary> /// <returns></returns> public List<string> GetTables() { List<string> list = new List<string>(); try { if (_DbConnection.State == ConnectionState.Closed) _DbConnection.Open(); DataTable dt = _DbConnection.GetSchema("Tables"); foreach (DataRow row in dt.Rows) { if ((row[3].ToString() == "TABLE") || (row[3].ToString() == "BASE TABLE")) list.Add(row[2].ToString()); } } finally { if (_DbConnection.State != ConnectionState.Closed) _DbConnection.Close(); } return list; } /// <summary> /// 创建数据链接 /// </summary> /// <returns></returns> public DbConnection CreateConnection() { // IMEX=1 可把混合型作为文本型读取,避免null值 string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _FileName + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'"; return new OleDbConnection(conn); } /// <summary> /// 获取Sheet数据,表名如:Sheet1$ /// </summary> /// <returns></returns> public DataTable GetData(string tableName) { string sql = "SELECT * FROM [" + tableName + "] "; return this.GetDataBySQL(sql); } /// <summary> /// 获取Xls数据,转换为DataTable /// </summary> /// <param name="sqlSelect">SELECT * FROM [Sheet1$]</param> /// <returns></returns> public DataTable GetDataBySQL(string sqlSelect) { DataTable dt = null; try { if (_DbConnection.State == ConnectionState.Closed) _DbConnection.Open(); OleDbCommand cmd = _DbConnection.CreateCommand() as OleDbCommand; cmd.CommandText = sqlSelect; dt = new DataTable(); DbDataAdapter adp = new OleDbDataAdapter(cmd); adp.Fill(dt); } finally { if (_DbConnection.State != ConnectionState.Closed) _DbConnection.Close(); } return dt; } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加微信
参考文档:
C#开发的MDI架构+Access数据库应用程序(增删改查) C#中将数据插入到Excel表中 C#多数据库组件包支持MSSQL+Oracle+MySQL+用户操作手册|C/S框架网 C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件 原创Winform快速开发框架平台Oracle版本(三层架构+C#.NET+Oracle数据库) CSFramework旗舰版多语言支持两种存储策略:XML文件及SQL数据库 C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” CSFramework.COM原创:全球国家名称列表国旗图标库导入程序(C#+VS2015) 软件开发与设计 - CMS内容管理系统-[CMS程序]破竹CMS v4.0.7.21数据库表结构 软件开发与设计 - CMS内容管理系统-[CMS程序]安源内容管理系统AYCMS v1.5数据库表结构 软件开发与设计 - EMS-电子商城系统-禾匠商城小程序独立版2.9.22 开源版数据库表 在基类窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件) 基于集团组织架构数据权限系统快速开发框架(C#.NET Winform+支持多数据库) C# C/S架构软件自动升级程序Winform+多数据库(MySQL,MsSQL,Oracle) C# SqlBulkCopy通用数据同步程序|跨数据库导入数据
其它资料:
什么是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内容管理系统 | |