欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE

程序员文章站 2022-04-25 17:28:56
...

作为财务数据核算人员,面对大量的业务与财务数据,借助于传统的EXCEL表格,已经力不从心。最近几个月,利用周末及下班的空闲时间,写了一个数据库 导入 导出 工具 ,以方便业务逻辑密集型的数据处理。目前,DataPie 支持 百万级别的数据 导出 ,对于几十万

作为财务数据核算人员,面对大量的业务与财务数据,借助于传统的EXCEL表格,已经力不从心。最近几个月,利用周末及下班的空闲时间,写了一个数据库导入导出工具,以方便业务逻辑密集型的数据处理。目前,DataPie支持百万级别的数据导出,对于几十万的数据导入,也轻松应付。

源码及安装包下载地址:https://github.com/yfl8910/DataPie

先看看界面,登录界面:

C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE

主界面:

C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE

主要代码:

1.excel文件读到DataTable

///

///根据excel路径和sheet名称,返回excelDataTable

///

public static DataTable GetExcelDataTable(string path, string tname)

{

/*Office 2007*/

string ace = "Microsoft.ACE.OLEDB.12.0";

/*Office 97 - 2003*/

string jet = "Microsoft.Jet.OLEDB.4.0";

string xl2007 = "Excel 12.0 Xml";

string xl2003 = "Excel 8.0";

string imex = "IMEX=1";

/* csv */

string text = "text";

string fmt = "FMT=Delimited";

string hdr = "Yes";

string conn = "Provider={0};Data Source={1};Extended Properties=\"{2};HDR={3};{4}\";";

string select = string.Format("SELECT * FROM [{0}$]", tname);

//string select = sql;

string ext = Path.GetExtension(path);

OleDbDataAdapter oda;

DataTable dt = new DataTable("data");

switch (ext.ToLower())

{

case ".xlsx":

conn = String.Format(conn, ace, Path.GetFullPath(path), xl2007, hdr, imex);

break;

case ".xls":

conn = String.Format(conn, jet, Path.GetFullPath(path), xl2003, hdr, imex);

break;

case ".csv":

conn = String.Format(conn, jet, Path.GetDirectoryName(path), text, hdr, fmt);

//sheet = Path.GetFileName(path);

break;

default:

throw new Exception("File Not Supported!");

}

OleDbConnection con = new OleDbConnection(conn);

con.Open();

//select = string.Format(select, sql);

oda = new OleDbDataAdapter(select, con);

oda.Fill(dt);

con.Close();

return dt;

}

2.批量把数据导入到数据库

1SQL SERVER版本

public bool SqlBulkCopyImport(IListstring> maplist, string TableName, DataTable dt)