新点软件中,怎么将工程中的数据js导出excell?

VC++中用Excel实现数据库表的导入与导出_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
VC++中用Excel实现数据库表的导入与导出|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢您现在的位置:&&>>&&>>&&>>&正文
【软件工程】
[ 来源:| 作者: | 时间: | ]
& & & & C#导出数据到Excel,基本有两种方法,一种方法是通过Microsoft.Office.Interop.Excel.Application,一行一列的写入Excel中;另一种方法是通过OLEDB,利用DataSet批量更新的放大写入Excel中。
& & & & 这两种方法各有用处。通过Microsoft.Office.Interop.Excel.Application传数据到Excel中,可以比较好的控制表格的格式,以便于直接 查看和打印,但效率低;通过OLEDB传数据到Excel中,格式不方便控制,但效率高。
& & & & 我最近在导出大数据时(750w用户数据,分城市导出,每个Excel文件只有一个sheet,其中最多1000条),通过Microsoft.Office.Interop.Excel.Application传数据到Excel中一直没有成功,这种方法通过COM传数据的方法存在内存释放以及FrameWork框架方面的问题;后来我通过OLEDB成功导出。
& & & 1、准备工作:在磁盘中建立一个模版Excel文件,这个Excel文件的sheet1的第一行填写好表头。
& & & 2、核心代码:
& & & & & &2.1、 取出城市数据到 DataTable&cityDt=&所有城市并按id排序&;
& & & & & &2.2、文件存放的文件夹 fileOutFolder
& & & & & 2.3、我把数据分在五台计算机上导出,于是有一个城市分类的方法
& & & & & &private void city(int cityMode)
& & & & & &{
& & & & & & & & & &int cityRowNum = cityDt.Rows.C
& & & & & & & & & &int cityColumnNum = cityDt.Columns.C
& & & & & & & & & for (int i = 0; i & cityRowN i++)
& & & & & & & & &{
& & & & & & & & & & & & &if (i % 5 == cityMode)&&fileOutOleDb(i);
& & & & & & & & &} & & & & & &
& & & & & & & & &this.Close();
& & & & & &}
& & & & &2.4、读取需要导出的城市的用户记录数
& & & & &&private int &findUserCount(int cityId)
& & & & &{
& & & & & & & & & 读取数据库数据
& & & & 2.5、读取相应页的用户数
& & & & private DataTable&findUser(int cityId,int int skipNum)
& & & & & & & return DataTable(&select * from user where id=&+cityId.toString()+& limit &+skipNum.tostring+&,1000&);
& & & &2.6、导出Excel文件处理
private void fileOutOleDb(int i)
int city_id = Convert.ToInt32(cityDt.Rows[i][0]);
string city_ename = cityDt.Rows[i][&ename&].ToString();
string city_name = cityDt.Rows[i][&ename&].ToString();
int userCount = findUserCount(city_id);
int pageCount = userCount / 1000;
if (pageCount * 1000 & userCount) userCount += 1;
int beginPageNo = 1;// Convert.ToInt32(textBox3.Text);
int endPageNo = pageC// Convert.ToInt32(textBox4.Text);
string curDirectory = fileOutFolder + &\\& + city_
if (!Directory.Exists(curDirectory))
Directory.CreateDirectory(curDirectory);
for (int j = beginPageNo; j &= endPageNo; j++)
textBox2.Text = j.ToString();
//1、读出数据
DataTable tempdt = findUser(Convert.ToInt32(cityDt.Rows[i][0]), j * 1000);
//判断文件是否存在,不存在则拷贝一个文件
string fileFullName = curDirectory + &\\& + city_name + &_& + j.ToString() + &.xls&;
if (!File.Exists(fileFullName))
File.Copy(&d:\\model.xls&, fileFullName);
//2、得到连接对象
string strCon = string.Format(@&Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'&, fileFullName);
OleDbConnection myConn = new OleDbConnection(strCon);
string strCom = &SELECT * FROM [Sheet1$]&;
myConn.Open();
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(strCom, myConn);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, &[Sheet1$]&);
myConn.Close();
DataTable dt = myDataSet.Tables[0]; //初始化DataTable实例
dt.PrimaryKey = new DataColumn[] { dt.Columns[&id&] };//创建索引列
int rowNum = tempdt.Rows.C
int colNum = tempdt.Columns.C
for (int k = 0; k & rowN k++)
DataRow myRow = dt.NewRow();
for (int m = 0; m & colN m++) myRow[m] = tempdt.Rows[k][m];
dt.Rows.Add(myRow);
OleDbCommandBuilder odcb = new OleDbCommandBuilder(myDataAdapter);
odcb.QuotePrefix = &[&;
//用于搞定INSERT INTO 语句的语法错误
odcb.QuoteSuffix = &]&;
myDataAdapter.Update(myDataSet, &[Sheet1$]&); //更新数据集对应的表
if (j == pageCount)
//System.Threading.Thread.Sleep(1000);
这个数据导出,有两个瓶颈,一个是读取数据,一个是一个城市数据量特别大。我导出100w的需要37分钟,开始导出非常快(20个文件,2W左右),到后面1分钟就2个文件了。
& & & & & &&
转载请注明&
上一篇资料: &
下一篇资料: &
【推荐阅读】
?????????????
?&?&?&?&?&?&?&?&?&?&?&?&
学网?特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。本站所有文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题,请联系编辑人员,我们尽快予以更正。
【】【】【】【】【】【】【】【】【】【】【】
??????????
没有任何图片资料
学网?2003-2011版权所有 & CopyRight
.Inc All Rights Reserved合作、联系E-Mail:# QQ:9700200
学网_致力于电脑使用知识、软件操作知识以及互联网应用知识的普及陕ICP备号扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
利用VB实现将Access数据库导出到Excel文件中
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口新点2013清单造价江苏版操作视频讲稿_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
新点2013清单造价江苏版操作视频讲稿|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢

我要回帖

更多关于 数据库导出excel 的文章

 

随机推荐