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);

    }

  • 相关阅读:
    React组件传值(子传父)
    React里面的componentDidMount()钩子函数用法
    修改主键的值
    mysql 命令
    Android ContentResolver
    linux下vim命令详解
    26种基于PHP的开源博客系统
    [环境配置] 如何为Apache绑定多IP多域名
    display属性值
    link标签 rel="stylesheet"
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2192941.html
Copyright © 2011-2022 走看看