用ASP生成Excel文件

利用asp将数据写入到新的excel文件中 很多人都在坛子里问这个问题,因为代码比较长,很多人给出的答案都不是很完整,导致一些刚接触的人走了不少的弯路,这里总结一下生成的过程以及原理,希望能给大家一个参考和帮助1.首先生成一个excel文件,需要了解这种文件的格式,比如文件头的信息,文件体(body部分) ,文件底信息;我们可以通过这样的方式来探测一个excel文件的结构,先建立excel文件,打开后另存为网页形式,这样就获得了exce 阅读详情
用asp生成Excel文件不是像我认为的那么容易。我想这小段代码应该能帮助大家找到输出数据到csv和xls的方法。




<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<%


function getData(connectionString, sql){
    var result = null;
    var adStateOpen = 1;
    var connection = new ActiveXObject("ADODB.CONNECTION");
    try{
        connection.Open(connectionString);
    } catch(e1){
        return null;
    }
    if (connection.State !== adStateOpen) {
        return null;
    }
    try{
        var recordset = connection.Execute(sql);
    } catch(e2){
        return null;
    }
    if (!recordset.EOF) {
        result = recordset.GetRows().toArray();
        recordset.Close();
    }
    recordset = null;
    connection.Close();
    connection = null;
    return result;
}




function writeCsvHttpHeaders(filename){
    Response.ContentType = "text/csv";
    Response.Charset = "utf-8";
    Response.AddHeader("Content-Disposition", 
            "attachment; filename="+filename+".csv");
}


function writeXlsHttpHeaders(filename){
    Response.ContentType = "application/vnd.ms-excel";
    Response.Charset = "utf-8";
    Response.AddHeader("Content-Disposition", 
            "attachment; filename="+filename+".xls");
}


function getXlsStart(){
    return ""
    + "<html>\n"
    + "<head>\n"
    + "<meta http-equiv=\"Content-Type\" "
    + "content=\"text/html; charset=UTF-8\">\n"
    + "<style type=\"text/css\">\n"
    + "html, body, table {\n"
    + "    margin: 0;\n"
    + "    padding: 0;\n"
    + "    font-size: 11pt;\n"
    + "}\n"
    + "table, th, td { \n"
    + "    border: 0.1pt solid #D0D7E5;\n"
    + "    border-collapse: collapse;\n"
    + "    border-spacing: 0;\n"
    + "}\n"
    + "</style>\n"
    + "</head>\n"
    + "<body>\n"
    + "<table>\n"
    + "";
}


function getXlsEnd(){
    return ""
    + "</table>\n"
    + "</body>\n"
    + "</html>"
    + "";
}


function csvEscape(val){
    if (typeof val === "number") {
        return val.toString(10).replace(".", ",");
    } else if (typeof val === "string") {
        if (val.indexOf("\"") !== -1) {
            return "\""+val.replace(/"/g, "\"\"")+"\"";
        } else if (val.indexOf(";") !== -1) {
            return "\""+val+"\"";
        } else {
            return val;
        }
    } else if (val === null) {
        return "#NULL#";
    } else if (val === undefined) {
        return "#UNDEFINED#";
    } else {
        return "#ERROR#";
    }
}


function writeCsv(filename, data, columnCount){
    writeCsvHttpHeaders(filename);
    // utf-8 BOM (very important for special characters)
    Response.Write("\uFEFF");
    for (var i=0, il=data.length; i<il; i+=columnCount) {
        for (var j=0; j<columnCount; j++) {
            Response.Write(csvEscape(data[i+j]));
            if (j !== columnCount-1) {
                Response.Write(";");
            }
        }
        Response.Write("\n");
        // prevent Response Buffering Limit Exceeded
        if (i % 1000 === 0) {
            Response.Flush();
        }
    }
}


function xlsEscape(val){
    if (typeof val === "number") {
        return val.toString(10).replace(".", ",");
    } else if (typeof val === "string") {
        return Server.HTMLEncode(val);
    } else if (val === null)  {
        return "#NULL#";
    } else if (val === undefined)  {
        return "#UNDEFINED#";
    } else {
        return "#ERROR#";
    }
}


function writeXls(filename, data, columnCount){
    writeXlsHttpHeaders(filename);
    Response.Write(getXlsStart());
    for (var i=0, il=data.length; i<il; i+=columnCount) {
        Response.Write("<tr>");
        for (var j=0; j<columnCount; j++) {
            Response.Write("<td>");
            Response.Write(xlsEscape(data[i+j]));
            Response.Write("</td>");
        }
        Response.Write("</tr>\n");
        // prevent Response Buffering Limit Exceeded
        if (i % 1000 === 0) {
            Response.Flush();
        }
    }
    Response.Write(getXlsEnd());
}


function main(){
    var filetype = Request.QueryString("filetype")();
    var connectionString = "Provider=SQLOLEDB.1;"
    + "Data Source=LAPTOP\\SQLEXPRESS;"
    + "User ID=internal;"
    + "Password=internal;"
    + "Initial Catalog=trees_in_sql";
    var sql = ""
    + "SELECT id \n"
    + ", name \n"
    + "FROM People \n"
    + ";";
    var filename = "filename";
    var columnCount = 2;
    
    var data = getData(connectionString, sql);
    if (data !== null) {
        Response.Clear();
        if (filetype === "csv") {
            writeCsv(filename, data, columnCount);
        } else {
            writeXls(filename, data, columnCount);
        }
    } else {
        Response.Write("Error, no data found");
    }
    Response.End();
}


main();


%>

简单生活,希望对大家有用!要觉得本文有价值请分享给您的朋友,生活就是人来人往,分享越多!收获越多!作者:天天ASP家园
使用ASP技术实现HTML、Word和Excel文件自动生成指南 本文还有配套的精品资源,点击获取 简介:ASP(Active Server Pages)是微软开发的服务器端脚本技术,支持多种文件类型的生成。本指南将详细介绍如何使用ASP结合FSO、模板引擎、Office对象模型等技术,实现基于模板动态生成HTML、Word和Excel文件的过程。这一技术对于Web应用程序和OA办公系统的文件管理和自动化流程至关重要。 1. ASP... 阅读详情

相关推荐

asp直接生成excel文件

asp直接生成excel文件,文件不存放在服务器上

用asp生成excel...

今天用asp生成Excel。。。贴一下代码,以后可以参考参考。。 生成EXCEL文件 在线生成EXCEL if Request("act") = "" then else dim rs,sql,filename,fs,myfile,x Set fs = server.C

Sbangm的专栏 876

asp中把数据导出为excel的2种方式,亲测可用

asp中把数据导出为excel的2种方式,亲测可用

asp生成Excel最简单的方法

CreateExcelaction=trim(request("action"))  if action="create" then   Response.ContentType = "application/ms-download"  Response.AddHeader "content-disposition", "attachment; filename=Table" & date()

showlin的专栏 1975

ASP生成EXCEL并自动下载

包括两部分资源:、 1.纯ASP生成并下载EXCEL文件。 2.asp查询列表,asp.net 生成EXCEL(引用DLL),asp下载

SDR实战(五)-AD9361多芯片同步技术详解

本文详细解析了AD9361多芯片同步技术在SDR系统中的实现方法,涵盖硬件连接方案、软件配置流程及同步验证技巧。通过等长时钟走线、低抖动时钟分配和精确的SYNC信号控制,解决MIMO系统中多AD9361芯片的时钟同步难题,提升系统性能与稳定性。

weixin_30952535的博客 761

asp操作excel文件

dim connxls,connstrxls connstrxls="DBQ=d:/newexcel.xls;DefaultDir=;DRIVER={Microsoft Excel Driver (*.xls)};" set connxls=server.createobject("ADODB.CONNECTION") connxls.open connstrxls Set rsxls=Serve

flynetcn的专栏 1801

FPGA实战:给你的UART串口通信加上Verilog奇偶校验位(Modelsim仿真验证)

本文详细介绍了如何在FPGA中实现UART串口通信的Verilog奇偶校验功能,包括发送端校验位生成和接收端校验检测的设计与实现。通过Modelsim仿真验证,确保数据传输的可靠性,适用于嵌入式系统和数字通信领域。

weixin_34216614的博客 341

ASP程序快速生成Excel文件

ASP程序快速生成Excel文件 在一个web项目中,要求将数据生成Excel文件保存到本地,最早使用的方法是直接使用Microsoft的Office Web组件,但是总体感觉是慢(微软的通病)。然后使用SQL SERVER语句直接生成excel文件,速度是快了,但是标题等信息还需要再打开一次生成的文件进行修改,还有一个更重要问题就是当查询比较复杂的时候,就很难处理。后来又想用csv格式,但是存在

黄灯桥的专栏 4348

通过HTTP的方式克隆GitHub上的项目

通过HTTP的方式克隆GitHub上的项目 打开想要下载的项目的网页链接,点击Clone or download绿色的按钮,进行如下步骤实现通过HTP的方式下载项目。 点击红色框圈出的位置: 打开想要存放项目的文件夹,在空白处点击鼠标右键,选择Git Bash Here,打开命令行。 输入git clone 复制的下载地址,回车进行下载。 4.正在下载的界面 5.下载完成。 技多不压身 哦耶✌✌✌ ...

weixin_37826412的博客 3202

从零开始掌握Python机器学习:七步教程 基础篇

前言 「开始」往往是最难的,尤其是当选择太多的时候,一个人往往很难下定决定做出选择。本教程的目的是帮助几乎没有 Python 机器学习背景的新手成长为知识渊博的实践者,而且这个过程中仅需要使用免费的材料和资源即可。 第一步:基本 Python 技能 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。 首先,你需要安装 Python。因为我们后...

hcgx2018的博客 1613

ASP输出生成Word 、Excel、Txt文件的方法

在ASP中生成Word文件、Excel文件和Txt文件,参考了微软的官方文档,自己简单弄了下,基本可以实现了,不足之处,望指导!下面言归正传。 1、用ASP生成Word文档,代码示例: 01 <% 02 Response.ContentType = "application/msword" 03 Response.AddHeader "Content-Di...

weixin_30412577的博客 366

(C#脚本)Unity中角色移动的几种实现方法,以及心得。(适合新手入门)

PS:首先我们要知道,在C#中Transform组件是可以直接调用的,而其他的(例如:Rigidbody,Animator)都需要通过 GetConpoment<组件的名称>(); 来获取进行实例化。 例子:调用Rigidbody2D private Rigidbody2D rb2D;//声明变量实例化 void Start() { rb2d = GetComponent<Rigidbody2D>();//获取 } 1.对Unity脚本写入有一定的思维了解...

qq_48860282的博客 1万+

asp.net生成excel文件的类

asp.net生成excel文件的类   调用:Dim clsExcel As New clsCommonExcel2             clsExcel.createAndDowloadExcel(table, "sheet名称", "生成的excel名称", "1,3,5", 20000)   Imports Interop Imports System.Web.HttpSe

wang_cel的专栏 1786

K-BERT: Enabling Language Representation with Knowledge Graph 代码复现 直接运行

K-BERT: Enabling Language Representation with Knowledge Graph K-BERT K-BERT 代码复现

1074

Wi-Fi物理帧间隔概念简介

物理帧间隔概念简介。

1042484520@qq.com(邮箱) 1779

asp动态生成excel文件

##################实现将动态生成excel表格,并将内容一并写入#############################################Code CreateBy guofeng#####################################%>生成EXCEL文件生成在交费记录的EXCELif Request("act") = "" thenels

伴老 1994

RK3588开发笔记-spi扩展canfd芯片MCP2518FD调试笔记

在嵌入式系统开发中,CANFD(控制器局域网灵活数据速率)是一种广泛应用于汽车和工业自动化领域的通信协议。为了满足项目需求,我们在RK3588平台上通过SPI接口扩展了CANFD芯片MCP2518FD,之所以用spi进行canfd扩展,是为了解决原生RK3588原生can不够稳定的问题(发送扩展帧有几率编程标准帧,RK3568/3588均存在该问题)。通过本次调试工作,我们成功地在RK3588平台上扩展了CANFD芯片MCP2518FD,并实现了与CAN总线的稳定通信。

flypig has a dream! 4225

ASP生成指定格式的EXCEl文件

<br /><%<br />Set xlApplication = Server.CreateObject("Excel.Application") '调用excel对象<br />xlApplication.Visible = False '无需打开excel<br />xlApplication.SheetsInNewWorkbook=1 '指定excel中表的数量<br />xlApplication.Workbooks.Add '添加工作簿<br />Set xlWorksheet = xlAppl

baoyonwei的专栏 4002

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ASP.NET中上传并读取Excel文件数据,附后生成EXCEL及杀掉EXCEL进程。

作者tag:asp.netasp.net中上传并读取excel文件数据附后生成excel及杀掉excel进程。优快云 推荐tag:exceldatagridxlappobjexcel ASP.NET中上传并读取Excel文件数据,附后生成EXCEL及杀掉EXCEL进程。 本文通过一个简单的例子,实现读取Excel数据文件。首先,创建一个Web应用程序项目...

weixin_30241919的博客 233

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 详细解析网页响应式设计的现状和趋势
下一篇: 当前月份日历
ASP2014
博客等级 码龄12年 8粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值