C#将DataTable导出Execl、Word、Xml

    /// <summary>
    /// 将DT转换为Execl的方法
    /// </summary>
    /// <param name="dt">需要导出的DT
    /// <param name="page">页面
    /// <param name="fileName">文件名
    public void ToExecl(DataTable dt, Page page, string fileName)
    {
        HttpResponse response = page.Response;
        response.Clear();
        response.ContentType = "application/x-excel";
        response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls");
        StringBuilder sB = new StringBuilder();
        for (int j = 0; j < dt.Columns.Count; j++)
        {
            sB.Append(dt.Columns[j].Caption + "\t");
        }
        sB.Append("\n");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            for (int k = 0; k < dt.Columns.Count; k++)
            {
                sB.Append("=\"" + dt.Rows[i][k].ToString() + "\"\t"); //解决导出的单元格以科学计数法显示的问题
            }
            sB.Append("\n");
        }
        response.Write(sB.ToString());
        response.End();
    }

public void ToWord(DataTable dt, Page page, string filName)
   {
       HttpResponse response = page.Response;
       response.Clear();
       response.ContentType = "application/msword";
       response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
       response.AddHeader("Content-Disposition","attachment:filename="+System.Web.HttpUtility.UrlEncode(filName,System.Text.Encoding.UTF8)+".doc");
       StringBuilder sBuilder = new StringBuilder();
       for (int i = 0; i < dt.Rows.Count; i++)
       {
           sBuilder.Append(dt.Rows[i][1].ToString()+"\n");
       }
       response.Write(sBuilder.ToString());
       response.End();
   }  

public void ToXML(DataTable dt, Page page, string filename)
{
    HttpResponse response = page.Response;
    //DataSet ds = new DataSet();
    response.Clear();
    response.ContentType = "application/x-excel";
    response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
    response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename,System.Text.Encoding.UTF8) + ".xls");
    System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding();
    System.Xml.XmlTextWriter xw = new XmlTextWriter(response.OutputStream, utf8);
    xw.Formatting = Formatting.Indented;
    xw.Indentation = 4;
    xw.IndentChar = ‘ ‘;
    dt.TableName = "dd";
    dt.WriteXml(xw);
    dt = null;
    GC.Collect();
    xw.Flush();
    xw.Close();
    response.End();
}  

来源:http://blog.csdn.net/smartsmile2012/article/details/8182862

C#将DataTable导出Execl、Word、Xml

时间: 2024-12-18 01:35:40

C#将DataTable导出Execl、Word、Xml的相关文章

DataTable导出为word,excel,html,csv,pdf,.txt

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.Ht

C#中DataTable导出Execl为自定义标题

public bool ExportExcel(DataTable tb, string path, string tbName) { //excel 2003格式 string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=Excel 8.0;"; //Excel 2007格式 //string connString = &qu

.net中将DataTable导出到word、Excel、txt、htm的方法

dt:DataTable strFile:fileName strExt:type private void GridExport(DataTable dt, string strFile, string strExt)     {         string strAppType = "";         switch (strExt)         {             case "xls":                 strAppType =

Npoi导入导出Execl

读取csv格式时内容含有逗号的无法处理 using System; using System.Data; using System.IO; using System.Web; using NPOI; using NPOI.HPSF; using NPOI.HSSF; using NPOI.HSSF.UserModel; using NPOI.POIFS; using NPOI.Util; using System.Text; using NPOI.SS.UserModel; using NPOI

asp.net中导出Execl的方法

一.asp.net中导出Execl的方法: 在 asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址 输出在浏览器上:一种是将文件直接将文件输出流写给浏览器.在Response输出时,\t分隔的数据,导出 execl时,等价于分列,\n等价于换行. 1.将整个html全部输出execl 此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl中.   Response.Clear();       Response.Buffer=  

Java 实现HTML富文本导出至word完美解决方案

一. 问题的提出 最近用java开发一个科技项目信息管理系统,里面有一个根据项目申请书的模板填写项目申报信息的功能,有一个科技项目申请书word导出功能. 已有的实现方式:采用标准的jsp模板输出实现,简单地说,就是把数据渲染进jsp页面,然后将此页面另存为doc文档,从而达到word导出效果.但是存在以下几个问题: (1) 由于导出的html网页格式,打开word后,默认显示的视图模式为WEB版式视图: (2) 修改word文档后,会新增一个相关联的文件夹,word的html中会引用这个文件夹

js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)

第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type="text/javascript" language="javascript"> var idTmr; function getExplorer() { var explorer = window.navigator.userAgent; //ie if(explore

Asp.net中利用NPOI组件快速导入导出Execl数据

相信很多童鞋都开发过Execl的导入导出功能,最近产品中无论是后台数据分析的需要,还是前端满足用户管理的方便,都有Execl导入导出的维护需求产生. 以前做这个功能,如果是web,利用HttpContext.Current.Response.ContentType ="application/ms-excel";就可以导出html数据表格到execl中,这种方法的问题就是编码格式的兼容性太差,用Mac OS之类的 office打开直接乱码给你看.或者是调用office的COM组件,或宏

NPIO 导出Execl

步骤1:导入NOIO.dll    (我导入压缩包中的4.0) 下载地址:http://npoi.codeplex.com/downloads/get/1572743 步骤二:粘贴代码(^  ....   ^) public class ExeclController : Controller    {        //        // GET: /Execl/        public ActionResult Index()        {            DataTable