zoukankan      html  css  js  c++  java
  • [置顶]C#中导出Excel报表的方法

             在上篇博文中提到了C#执行Excel宏模版的方法,这篇我们来介绍下怎么样将模版导出,并生成报表。

    winform中简单的示例代码如下:

    public ExportTextReport()

    {

                string strTempReportPath = "xxxxReport.xls";//导出报表的路径
                string strTemplatePath = "xxxxTemplate.xls";//报表模版的路径
               

               

                FileInfo fi = new FileInfo(strTempReportPath);

                ExcelTest.ExelTemplate.FillContent(strTemplatePath, strTempReportPath, dsData);
               

                if (File.Exists(strTempReportPath))
                {
                    System.Diagnostics.Process.Start("Excel.exe",strTempReportPath); //打开EXCEL
                }

    } 

    在Asp.net中我们可以专门做一个导出报表的页面来进行报表的导出,代码如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AttachPrint.aspx.cs" Inherits="Common.AttachPrint" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
       
        </div>
        </form>
    </body>
    </html>

    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.HtmlControls;
    using System.IO;

    namespace Common
    {
        public partial class AttachPrint : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                 if(!string.IsNullOrEmpty(Request.QueryString["PrintFile"]))
                 {
                     string realFullFileName = Server.HtmlDecode(Request.QueryString["PrintFile"]);
                     FileInfo finfo = new FileInfo(realFullFileName);
                     Response.Clear();
                     Response.Charset = "utf-8";
                     Response.Buffer = true;
                     this.EnableViewState = false;
                     Response.ContentEncoding = System.Text.Encoding.UTF8;

                     Response.AppendHeader("Content-Disposition", "attachment;filename="
                     + HttpUtility.UrlEncode(finfo.Name, System.Text.Encoding.UTF8));
                     Response.WriteFile(realFullFileName);
                     Response.Flush();
                     Response.Close();
                     Response.End();
                 }
            }
        }
    }

    然后在其它页面进行报表导出时示例方法如下:

    private ExportTest()

    {

                

                string strTempReportPath = "xxxxReport.xls";//导出报表的路径
                string strTemplatePath = "xxxxTemplate.xls";//报表模版的路径

                FileInfo fi = new FileInfo(strTempReportPath);

                ExcelTest.ExelTemplate.FillContent(strTemplatePath, strTempReportPath, dsData);

                string strexportpath = Server.HtmlEncode(strTempReportPath);
                Response.Redirect(string.Format("AttachPrint.aspx?PrintFile={0}", strexportpath), true);

    }

  • 相关阅读:
    检测后缀表达式的合法性
    对表达式进行空白符预处理
    字符串替换
    中缀表达式的计算
    Linux shell编程
    Linux常用shell
    [转载]shell脚本编写规范
    [转载]Linux文件类型
    Linux的进程
    Linux进入命令行模式
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2192941.html
Copyright © 2011-2022 走看看