C# Excel xls文件导入程序Excel数据库通用类XlsFileDB

  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/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

C# Excel xls文件导入程序Excel数据库通用XlsFileDB
Winform框架通用导入Excel文件源码下载
原创文档-Winform开发框架提供通用导入Excel功能界面|C/S框架网
C# OleDbConnection读取加装Excel2003(.xls),Excel2007(.xlsx)文件
C#操作Excel合并多个Excel文件
在基窗体扩展一个通用导出Excel文件的按钮(支持导出所有表格的数据到Xlsx文件)
C# 使用设计模式构建通用数据库访问
框架提供通用数据导出功能,将表格数据导出到EXCEL文件
CSFramework.COM原创:全球国家名称列表国旗图标库导入程序C#+VS2015)
C#将数据导出到Excel汇总
C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”
通用图片处理CImageLibrary,预设存储JPG格式|C/S框架网
CSFramework通用自动提交数据工具(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库
国内省市区数据库.xls 下载
C#开发的MDI架构+Access数据库应用程序(增删改查)
IniFile 操作INI文件 C#
通用十、十六进制数据处理
C# INI文件操作(IniFileAPI)
C#导出数据到Excel 源码大全
C#中将数据插入到Excel表中