asp.net读取execl模板并填充数据,关闭进程

<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        function getExecl() {
            $.ajax({
                type: ‘POST‘,
                url: ‘ashx/execl.ashx‘,
                success: function (data) {
                    var re = eval(data);
                    for (var i in re) {
                        if (re[i].num > 0)
                            alert(re[i].num);
                    }
                },
                error: function (data) { }
            });

        }

    </script>
</head>

前台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
using System.Web.Script.Serialization;

namespace WebApplication1.ashx
{
    /// <summary>
    /// Summary description for execl
    /// </summary>
    public class execl : IHttpHandler
    {
        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int GetWindowThreadProcessId(IntPtr hwnd, out   int ID);
        JavaScriptSerializer json = new JavaScriptSerializer();
        public void ProcessRequest(HttpContext context)
        {
             context.Response.ContentType = "text/plain";
             int s= getExecl();
             MessageInfo MessageRe = new MessageInfo(s, null);
             string returnValue = json.Serialize(MessageRe);
             returnValue = "[" + returnValue + "]";
             context.Response.Write(returnValue);
        }
        private int getExecl()
        {
            int num = 0;
            try
            {
                ApplicationClass excel = new ApplicationClass();
                string time = DateTime.Now.ToString("yyyyMMddHHmmss");
                string path = @"H:\exel\" + time + ".xlsx";
                excel.Workbooks.Open(@"H:\exel\1.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                excel.Visible = false; //设置可见性
                Worksheet workshet = (Worksheet)excel.Worksheets.get_Item(1);
                workshet.Cells[3, 1] = "11"; //行和列
                workshet.Cells[4, 1] = "11";
                workshet.Cells[5, 1] = "11";
                workshet.Cells[6, 1] = "11";
                workshet.SaveAs(path, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                excel.Quit(); //退出
                IntPtr t = new IntPtr(excel.Hwnd); //运用句柄
                int k = 0;
                GetWindowThreadProcessId(t, out   k);
                System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
                p.Kill(); //杀死当前进程
                num = 1;
            }
            catch (Exception e) { }
            return num;
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

}

一般处理程序代码

参考了地址 http://www.cnblogs.com/zhangchenliang/archive/2011/07/21/2112430.html

时间: 2024-10-28 18:23:40

asp.net读取execl模板并填充数据,关闭进程的相关文章

向Word模板中填充数据

现在有这样的需求,给Word文档的指定位置填充上特定数据,例如我们有一个终端,用来打印员工的薪资证明,对于一个公司来说,他的薪资证明模板是固定的,变化的地方是员工姓名,部门,职位等.我们只需要将这些指定数据填写到指定位置即可. 1. 制作Word模板, 在Word中,有一个东东叫书签,我们可以在需要填充的地方预先插入特定名称的书签. 2. 在指定的Bookmark位置写入特定数据: MSWord.Application app = new MSWord.Application(); string

js使用模板快速填充数据

1.html <!DOCTYPE html> <html> <head> <title>模板标签</title> </head> <body> <table id="tableData"> <tr class="firstLine"> <th></th> <th>图片</th> <th>图片名称<

[原创]java向word模板中填充数据(总结)

使用过PageOffice动态生成word文档的人都知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面有两个概念,一个叫做数据区域(DataRegion),另一个叫做数据标签(DataTag). 一. 概念 数据区域:是Word文档中具有 "PO_" 前缀命名的书签所定位的文档区域.简单来说,数据区域就是一种特殊的Word书签对象,便于定位Word文档中的内容. 数据标签:是任意的有效字符组成的特殊样式的字符串(如

execl模板导入导出

最近接到一个需求,公司财务有个execl里面已经写满了各种计算公式多个sheet公式嵌套等,bd直接往execl中指定的单元格填充数据,execl中的公式可以算出所有的测算结果.现在这个需要做到系统中去,由于公式过于复杂而且多变(财务会已经调整了好几个版本了),于是不将计算逻辑放在系统中实现.在模块的页面中填数据,并返回计算结果到页面. 开始做使用npoi-2.21 时发现一个问题,在某一个单元格中计算出来数据有误差,于是做了一个实验读取execl模板转成IO流输出从页面下载出来, 对两个模板填

将数据填充到已有的EXECL模板中

导出execl网上一大堆,最近遇到将数据导出到已有的execl模板中,具体到某行列,动态加载数据. 添加 Microsoft.Office.Interop.Excel 引用 1 /// <summary> 2 /// DataGridView 导出到execl模板中 3 /// </summary> 4 /// <param name="fileName">execl模板路径</param> 5 /// <param name=&q

asp.net读取Excel数据

先通过控件FileUpload获取excel文件路径 protected void btnReadExcelFromFileUpload_Click(object sender, EventArgs e) { if (fupExcel.PostedFile.ContentLength > 0) { //获取全路径 string fullFileName = fupExcel.PostedFile.FileName.ToString(); //获取文件名 string fileName = fup

ASP.NET用SQL Server中的数据来生成JSON字符串

原文引自:  作者: 缺水的海豚  来源: 博客园  发布时间: 2010-09-21 21:47  阅读: 6136 次  推荐: 0   原文链接   [收藏] 摘要:ExtJs用到的数据内容基本上都是JSON格式的,要和ASP.NET结合开发,需要格式化数据成JSON的东西.所以作者实现了一个生成JSON字符串的方法. 最近在学习ExtJs与ASP.NET结合开发,前者用到的数据内容基本上都是JSON格式,遂想写一个格式化数据成JSON的东东,在网上找了一下,发现还蛮多的,实现了一个类似于

ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程

原文:ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 使用 EF 框架查询数据 上一章节我们学习了如何设置和初始化数据库,以及如何创建迁移代码和应用迁移代码.本章节我们就学习如何使用 EF 框架来查询数据库,至于添加和修改,后面的章节中我们会慢慢学习到 添加测试数据 我们首先使用 SQLite Studio 添加三条数据 ID Name 1 李白 2 杜甫 3 白居易 使用 SQLite Studio

asp.net读取CSV-千分之想

用Excel导了两天数据,各种问题,折磨客户也折磨了自己,以前没发现的问题一下子都暴露出来了 特意收集两篇Excel跟CSV读取相关的两篇文章 asp.net读取excel文件,将excel文件先上传,在读取,最后删除. 但有一个问题,那就是excel文件夹需要有读写的权限,IIS需要为asp.net用户开通权限的. 而且excel文件本身存在安全隐患,那就是它可以运行vba程序.所以从安全角度考虑,上传excel是个不好的方法. 今天介绍另一种方法,读取CVS文件. Step1.拖一个file