加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

在Aspx中导Excel

发布时间:2023-08-02 15:09:10 所属栏目:教程 来源:
导读:关于aspx中导excel,网上的方法比较的多,而最主要的是用com的控件,小弟以前也是用有如此之方法,不过嘛,这种方法有一些小小的缺点,比如:必须要进行某种复杂的注册,而且在效率上可能也会比较的慢一些,所以,小
关于aspx中导excel,网上的方法比较的多,而最主要的是用com的控件,小弟以前也是用有如此之方法,不过嘛,这种方法有一些小小的缺点,比如:必须要进行某种复杂的注册,而且在效率上可能也会比较的慢一些,所以,小弟用了一种变通的方法,效果还不错,不敢独留,所以与大家共同分享之。
 
 我们知道,在做web的程序中有一个非常大的好处就是只要在服务器上进行配置,就可以不用考虑到客户端的东东了,本程序的主要思想是,在服务器端进行相关的操作生成excel文件,然后再由客户端进行下载。
 
由于直接生成excel文件比较的慢,所以,我先生成的是txt文本,然后保存为excel文件。话不多说,先show一下我的代码。
 
using system;
 
using system.data;
 
using system.io;
 
using system.web;
 
namespace toexceldsns
 
{
 
public class toexcelds
 
{
 
private string _txtpath;//txt文本的路径
 
private string _xlspath;//excel的路径
 
private dataset _ds;
 
public toexcelds(string xlspath,string txtpath,dataset ds)//构造函数 传入参数为excel与文本路径及转化的dataset
 
{
 
_txtpath=txtpath;
 
_xlspath=xlspath;
 
_ds=ds;
 
}
 
public void pumptoexcel()//导excel
 
{
 
datarow[] dr=_ds.tables[0].select("1=1");
 
datatable dt=_ds.tables[0];
 
streamwriter sw=new streamwriter(_txtpath,false,system.text.encoding.default);//文本流
 
string tmp="";
 
foreach(datacolumn dc in dt.columns)
 
{
 
tmp+=dc.caption+"/t";
 
}
 
sw.writeline(tmp+"/a");//将dataset中的头名写进文本流中,用制表符隔开
 
int itemcount=dt.rows.count;
 
int columncount=dt.columns.count;
 
for(int j=2;j<2+itemcount;j++)//将dataset中的每行写进文本流中,用制表符隔开
 
{
 
tmp="";
 
for(int k=1;k<columncount+1;k++)
 
{
 
tmp+=dr[j-2][k-1].tostring()+"/t";
 
}
 
sw.writeline(tmp+"/a");
 
}
 
sw.flush();
 
file.copy(_txtpath,_xlspath,true);//将txt保存为excel
 
sw.close();
 
}
 
}
 
}
 
一个简单而方便的导excel就完成了,当然,有人会提到,如果一起导excel会不会有问题,经本人测试,没有任何问题发生,原因是,在导excel中已经有了一个本地的副本,所以不存在冲突的问题,希望大家能够从中得到启发,从而定制出更科学的方法,当然,不要忘记分享哦!
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!