Aspx中导Excel

2016-01-29 13:01 18 1 收藏

Aspx中导Excel,Aspx中导Excel

【 tulaoshi.com - ASP.NET 】


 关于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 {

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中已经有了一个本地的副本,所以不存在冲突的问题,希望大家能够从中得到启发,从而定制出更科学的方法,当然,不要忘记分享哦!

来源:https://www.tulaoshi.com/n/20160129/1488539.html

延伸阅读
如何从iCloud中导出联系人   第一步:使用任一浏览器浏览 www.icloud.com,接着登录到你的 iCloud 帐户。 第二步:选择「通讯录」。 第三步:点击某一联系人,然后按下 Command+A 全选(Windows 电脑按下 Ctrl+A)。 第四步:点击左下角的齿轮图标。 第五步:选择「导出 vCard」选项。接下来选择保存 ...
  Dos 环境下使用SQl*Loader命令 加载   使用其它数据库的数据转移工具   Oracle 企业管理器中的数据加载功能   具体的技术实现   一、Dos 环境下加载   1、首先,服务器端的侦听服务必须已经开启。   测试方法:Dos 下输入    C:sqlplus username/password@serviceName   2、然...
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Imaging;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.IO; namespace Ktest{ /// /// WebForm1...
假如您要在应用程序中处理Word文档,可以参考MSDN. Lori Turner. Automating Microsoft Office 97 and Office 2000,该文内容具体全面,但是要在C++程序中导出Word文档,按照文中的方法来处理是很麻烦的,非凡是需要填写的参数太多,所以我们考虑生成正确的VB脚本,然后执行生成Word文档的操作,这个方法的优点在于:一方面可以少填写参数...
多控制器和导航控制器简单介绍 一、多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单。当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小view,控制器也是如此,用1个控制器去管理其他多个控制器 比如,用一个控制器A去管理3个控制器B、C、D。控制器A被称...

经验教程

213

收藏

86
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部