• C#操作Excel 调用Excel模板导出(一)


    1.通过调用Excel模板,替换替换其中要替换的单无格。

    下面直接看代码。

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.IO;
    using System.Reflection;
    using Excel = Microsoft.Office.Interop.Excel;

    namespace WebApplication1
    {
        
    public partial class _Default : System.Web.UI.Page
        {
            
    protected void Page_Load(object sender, EventArgs e)
            {

            }

            
    protected void Button1_Click(object sender, EventArgs e)
            {
                
    //生成一个新的文件名用全球唯一标识符 (GUID)来标识
                string newpath = Server.MapPath("."+ @"\Excel\" + Guid.NewGuid() + ".xls";
                
    //调用的模板文件
                FileInfo mode = new FileInfo(Server.MapPath("~/1.xls"));
                Excel.Application app 
    = new Excel.Application();
                
    if (app == null)
                {
                    
    return;
                }
                app.Application.DisplayAlerts 
    = false;
                app.Visible 
    = false;

                
    if (mode.Exists)
                {
                    Excel.Workbook tworkbook;
                    Object missing 
    = System.Reflection.Missing.Value;

                    app.Workbooks.Add(missing);
                    
    //调用模板
                    tworkbook = app.Workbooks.Open(mode.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
                    Excel.Worksheet tworksheet 
    = (Excel.Worksheet)tworkbook.Sheets[2];
                    tworksheet.Cells[
    62= "测试";
                    tworksheet.Cells[
    82= "测试";
                    tworksheet.SaveAs(newpath, missing, missing, missing, missing, missing, missing, missing, missing, missing);

                    tworkbook.Close(
    false, mode.FullName, missing);
                    app.Workbooks.Close();
                    app.Quit();
                    
    if (app != null)
                    {
                        
    foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcessesByName("Excel"))
                        {
                            
    //先判断当前进程是否是excel   
                            if (!p.CloseMainWindow())
                            {
                                p.Kill();
                            }
                        }
                    }
                    tworkbook 
    = null;
                    app 
    = null;
                    
    //强制对所有代进行垃圾回收
                    GC.Collect();
                }
                
    //打开保存对话框
                Response.Clear();
                Response.ClearHeaders();
                Response.Buffer 
    = false;
                Response.Charset 
    = "UTF-8";
                Response.ContentType 
    = "application/ms-excel";
                Response.AppendHeader(
    "Content-Disposition""attachment;filename=" + Server.UrlEncode(mode.Name));
                Response.ContentEncoding 
    = System.Text.Encoding.GetEncoding("GB2312");
                Response.AppendHeader(
    "Content-Length", mode.Length.ToString());
                Response.Charset 
    = "";
                
    this.EnableViewState = false;
                Response.WriteFile(newpath);
                
    //删除创建的Excel文件
                
    //FileInfo fileinf = new FileInfo(newpath);
                
    //fileinf.Delete();
                
    //关闭连接
                Response.Flush();
                Response.End();
            }
        }
    }
  • 相关阅读:
    实体机可以ping通虚拟机,虚拟机ping不通实体机
    实体机可以ping通虚拟机,虚拟机ping不通实体机
    eclipse快捷键
    eclipse快捷键
    利用信号捕捉函数回收子进程
    进程间通信_信号
    进程间通信_管道
    创建子进程
    系统编程入门
    JPG库移植与使用
  • 原文地址:https://www.cnblogs.com/stalwart/p/1918419.html
Copyright © 2020-2023  润新知