zoukankan      html  css  js  c++  java
  • 支持 导入 导出Excel,导出Word, 导出PDF。

    using System;
    using System.Data;
    using System.Configuration;
    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.HtmlControls;
    using iTextSharp;
    using iTextSharp.text;
    using iTextSharp.text.pdf;
    using System.IO;
    using System.Text;
    using System.Data.OleDb;
    
    using System.Collections.Generic;
    using System.Linq;
    
    namespace LinkPower.CivilAviation.Web.UICommon
    {
        public class toDownLoad
        {
            private string strFileName = "";
            public toDownLoad(string _strFileName)
            {
                //
                //TODO: 在此处添加构造函数逻辑
                //
                strFileName = HttpUtility.UrlEncode(_strFileName.Trim(), System.Text.Encoding.UTF8) + DateTime.Now.ToString(@"_yyyyMMddhhmmss");
            }
            /// <summary>
            /// 导出Excel
            /// </summary>
            /// <param name="table">参数类型:DataTable</param>
            public void toExcel(DataTable table)
            {
                try
                {
    
                    DataTable dt = new DataTable();
                    dt = table;
                    StringBuilder sb = new StringBuilder();
                    sb.Append("<table cellspacing="0" cellpadding="5" rules="all" border="1">");
                    sb.Append("<tr style="font-weight: bold; white-space: nowrap;">");
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        sb.Append("<td>").Append(dt.Columns[i].ColumnName).Append("</td>");
                    }
                    sb.Append("</tr>");
    
                    foreach (DataRow row in dt.Rows)
                    {
                        sb.Append("<tr>");
                        for (int i = 0; i < dt.Columns.Count; i++)
                        {
                            sb.Append("<td>").Append(row[i].ToString()).Append("</td>");
                        }
                        sb.Append("</tr>");
                    }
                    sb.Append("</table>");
                    toResponse(sb.ToString(), "application/vnd.ms-excel", ".xls");
                }
                catch
                { }
            }
            /// <summary>
            /// 导出Word
            /// </summary>
            /// <param name="table">参数类型:DataTable</param>
            public void toWord(DataTable table)
            {
                try
                {
                    DataTable dt = new DataTable();
                    dt = table;
                    StringBuilder sb = new StringBuilder();
                    sb.Append("<table cellspacing="0" cellpadding="5" rules="all" border="1">");
                    sb.Append("<tr style="font-weight: bold; white-space: nowrap;">");
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        sb.Append("<td>").Append(dt.Columns[i].ColumnName).Append("</td>");
                    }
                    sb.Append("</tr>");
    
                    foreach (DataRow row in dt.Rows)
                    {
                        sb.Append("<tr>");
                        for (int i = 0; i < dt.Columns.Count; i++)
                        {
                            sb.Append("<td>").Append(row[i].ToString()).Append("</td>");
                        }
                        sb.Append("</tr>");
                    }
                    sb.Append("</table>");
                    toResponse(sb.ToString(), "application/vnd.ms - word", ".doc");
                }
                catch
                { }
            }
            /// <summary>
            /// 导出Excel
            /// </summary>
            /// <param name="table">参数类型:String 可以包含Html代码</param>
            public void toExcel(string strHtmlValue)
            {
                toResponse(strHtmlValue, "application/vnd.ms-excel", ".xls");
            }
            /// <summary>
            /// 导出Word
            /// </summary>
            /// <param name="table">参数类型:String 可以包含Html代码</param>
            public void toWord(string strHtmlValue)
            {
                toResponse(strHtmlValue, "application/vnd.ms-word", ".doc");
            }
            /// <summary>
            /// 导出Excel
            /// </summary>
            /// <param name="table">参数类型:System.Web.UI.Control 建议GridView</param>
            public void toExcel(System.Web.UI.Control source)
            {
                try
                {
                    HttpResponse Response = HttpContext.Current.Response;
                    Response.Clear();
                    Response.Buffer = true;
                    Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>");
                    Response.AppendHeader("Content-Disposition", "attachment;filename=" + strFileName + ".xls");
                    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                    Response.AddHeader("base", "target=_blank");
                    Response.ContentType = "application/vnd.ms-excel";
    
                    //关闭控件的视图状态
                    source.Page.EnableViewState = false;
    
                    //初始化HtmlWriter
                    System.IO.StringWriter writer = new System.IO.StringWriter();
                    System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(writer);
                    //source.RenderControl(htmlWriter);
    
                    //预防出现控件必须放在具有 runat=server 的窗体标记内的错误
                    System.Web.UI.Page page = new System.Web.UI.Page();
                    HtmlForm form = new HtmlForm();
                    source.EnableViewState = false;
                    page.EnableEventValidation = false;
                    page.DesignerInitialize();
                    page.Controls.Add(form);
                    form.Controls.Add(source);
                    page.RenderControl(htmlWriter);
    
                    //输出
                    Response.Write(writer.ToString());
                    Response.End();
                }
                catch
                {
                }
            }
            /// <summary>
            /// 导出Word
            /// </summary>
            /// <param name="table">参数类型:System.Web.UI.Control 建议GridView</param>
            public void toWord(System.Web.UI.Control source)
            {
                try
                {
                    HttpResponse Response = HttpContext.Current.Response;
                    Response.Clear();
                    Response.Buffer = true;
                    Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>");
                    Response.AppendHeader("Content-Disposition", "attachment;filename=" + strFileName + ".doc");
                    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                    Response.AddHeader("base", "target=_blank");
                    Response.ContentType = "application/vnd.ms-word";
    
                    //关闭控件的视图状态
                    source.Page.EnableViewState = false;
    
                    //初始化HtmlWriter
                    System.IO.StringWriter writer = new System.IO.StringWriter();
                    System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(writer);
                    //source.RenderControl(htmlWriter);
    
                    //预防出现控件必须放在具有 runat=server 的窗体标记内的错误
                    System.Web.UI.Page page = new System.Web.UI.Page();
                    HtmlForm form = new HtmlForm();
                    source.EnableViewState = false;
                    page.EnableEventValidation = false;
                    page.DesignerInitialize();
                    page.Controls.Add(form);
                    form.Controls.Add(source);
                    page.RenderControl(htmlWriter);
    
                    //输出
                    Response.Write(writer.ToString());
                    Response.End();
                }
                catch
                { }
            }
            /// <summary>
            /// 导出PDF
            /// </summary>
            /// <param name="strPath">参数类型:System 建议使用Server.MapPath("~")获取根目录</param>
            /// <param name="datatable">参数类型:DataTable</param>
            public void toPDF(string strPath, DataTable datatable)
            {
                try
                {
                    string strFilesPath = strPath + "\TempPDF";
                    if (!Directory.Exists(strFilesPath))
                    {
                        Directory.CreateDirectory(strFilesPath);
                    }
                    strFilesPath = strFilesPath + "\" + strFileName + ".pdf";
                    Document document = new Document();
                    PdfWriter.GetInstance(document, new FileStream(strFilesPath, FileMode.Create));
                    document.Open();
                    BaseFont bfChinese = BaseFont.CreateFont("C://WINDOWS//Fonts//simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                    Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, new Color(0, 0, 0));
    
                    //document.Add(new Paragraph(this.TextBox1.Text.ToString(), fontChinese));
    
                    //iTextSharp.text.Image jpeg = iTextSharp.text.Image.GetInstance(Server.MapPath("pic015.jpg"));
                    //document.Add(jpeg);
                    PdfPTable table = new PdfPTable(datatable.Columns.Count);
    
                    for (int i = 0; i < datatable.Rows.Count; i++)
                    {
                        for (int j = 0; j < datatable.Columns.Count; j++)
                        {
                            table.AddCell(new Phrase(datatable.Rows[i][j].ToString(), fontChinese));
                        }
                    }
                    document.Add(table);
    
                    document.Close();
    
                    String FullFileName = strFilesPath;
                    FileInfo DownloadFile = new FileInfo(FullFileName);
                    System.Web.HttpContext.Current.Response.Clear();
                    System.Web.HttpContext.Current.Response.ClearHeaders();
                    System.Web.HttpContext.Current.Response.Buffer = false;
                    System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
                    System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + strFileName + ".pdf");
                    System.Web.HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
                    System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
                    System.Web.HttpContext.Current.Response.Flush();
                    System.Web.HttpContext.Current.Response.End();
                }
                catch
                {
                }
            }
            protected void toResponse(string strResValue, string strContentType, string strGS)
            {
                HttpResponse Response = HttpContext.Current.Response;
                Response.Clear();
                Response.Buffer = true;
                Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>");
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + strFileName + strGS);
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                Response.AddHeader("base", "target=_blank");
                Response.ContentType = strContentType;
                Response.Write(strResValue);
                Response.End();
            }
            /// <summary>
            /// 从Excel中导出数据到DataTable中
            /// </summary>
            /// <param name="TempFilePath">参数类型:Excel文件的位置</param>
            /// <param name="strSheetName">参数类型:Excel文件中包含数据的Sheet名称,默认为""=Sheet1</param>
            /// <returns name="DataTable">返回Excel中数据</returns>
            public DataTable intoDataTable(string TempFilePath, string strSheetName)
            {
                string strSheetNameValue = "Sheet1{1}quot;;
                if (strSheetName.Trim() != "")
                {
                    strSheetNameValue = strSheetName + "{1}quot;;
                }
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + TempFilePath + ";Extended Properties=Excel 8.0";
                //链接Excel
                OleDbConnection cnnxls = new OleDbConnection(strConn);
                //读取Excel里面有 表Sheet1
                OleDbDataAdapter oda = new OleDbDataAdapter("select * from [" + strSheetNameValue + "]", cnnxls);
                DataSet ds = new DataSet();
                //将Excel里面有表内容装载到内存表中!
                oda.Fill(ds);
                DataTable dt = ds.Tables[0];
                return dt;
            }
        }
    }

    其中using  iTextSharp;的引用dll 下载地址:http://sourceforge.net/projects/itextsharp/

  • 相关阅读:
    zepto源码--插入节点--学习笔记
    zepto源码--width,height--学习笔记
    zepto源码--$.map,$.each,$.grep--学习笔记
    zepto源码--isEmptyObject,isNumeric,inArray,trim--学习笔记
    zepto源码--filtered, contains,funcArg,setAttribute,className,deserializeVale--学习笔记
    zepto源码--qsa--学习笔记
    webstorm开发微信小程序
    第三方博客
    git最基础操作一
    vue-输入框change事件并获取值
  • 原文地址:https://www.cnblogs.com/kainjie/p/3449611.html
Copyright © 2011-2022 走看看