用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下载

玩转 Milvus(二):在 Ubuntu 22.04(WSL2)上安装 Milvus

本文详细介绍了在Ubuntu 22.04(WSL2)环境下安装Milvus向量数据库的两种单机模式:Milvus Lite和Milvus Standalone。Milvus Lite作为轻量级Python库,适合快速学习和小规模实验,只需通过pip安装即可使用。Milvus Standalone则支持Docker和Docker Compose两种部署方式,适合开发测试或小规模生产环境。文章对比了不同安装方式的优缺点,并提供了验证案例和常见问题解答,帮助开发者快速上手,实现简单的语义搜索功能。

企业级后端与 AI 应用开发双线探索 2507

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

手把手教你用YOLOv11-seg-LSCD搞定树脂件瑕疵检测(附数据集与代码)

本文详细介绍了如何使用YOLOv11-seg-LSCD模型进行工业级树脂件瑕疵检测,包括环境配置、数据集构建、模型训练与调优、部署优化等全流程。通过LSCD模块的创新设计,有效提升了气泡、裂纹等微小缺陷的检测精度,适用于各类树脂制品的质量检测场景。

weixin_28677005的博客 418

ASP程序快速生成Excel文件

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

黄灯桥的专栏 4348

微动探测原理及仪器介绍

微动探测原理及仪器介绍 1、微动探测原理 1.1 基本理论 微动是由体波和面波组成,其中微动能量的百分之七十以上都来自于面波,并且它与体波的主要区别是在不均匀的介质中传播时面波会发生频散,而体波不存在频散现象,因此面波是微动探测的主要对象。 对于介质的弹性参数(如横波速度、层薄厚、压缩波速度、密度等),面波传播速度相对比较敏感,特别是对横波的敏感性很高,因此可以利用面波来反演横波速度。 在时间和空间上,微动信号具有以下特性:高度变化、无规律性、无重复性等,有研究发现全世界各处记录的微动信号都有相似

zw461450141的博客 1万+

单总线CPU设计(变长指令周期3级时序)(HUST)(头歌实验)

利用比较器等功能模块将32位MIPS 指令字译码生成LW、SW、BEQ、SLT、ADDI、OtherInstr信号也就是利用比较器将指令字转换为译码信号,OP与不同信号对应(查询MIPS手册得知) 16 进制 :23 是 2进制: 00100011 ,把获得的OP,Func,和常数比对,相同输出1.按照题目要求填写表格,使用logisim的组合逻辑电路分析功能,当然也可以直接再logisim中写真值表。单总线采用变长指令周期,不同指令周期数不同,节拍数可变化。写的excel表格最终生成电路(当然 需要先把

xuxuaifeifei的博客 1万+

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

在jetson上对fastdeploy进行源码编译(完整版)

在大多数Linux发行版中,你可以使用包管理器安装Python开发包。根据jetpack的版本选择对应的推理库版本。在~/.bashrc中写入这三行。

如果想成为中心,那么就到中心去吧。 678

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

Open-AutoGLM 实战:手把手教你用 AI 操作手机「喂饭教程」

Open-AutoGLM 是一个由智谱AI开源的手机操作智能体框架,由手机端智能助手框架Phone Agent和9B大小的模型AutoGLM-Phone-9B组成,借助ADB自动执行点击、滑动、输入等操作——用户只需用自然语言描述任务,系统便能自动规划并完成整个操作流程。

blues_C的博客 1267

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程

理论开篇,理解什么是编程

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3112

asp动态生成excel文件

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

伴老 1994

广义S变换在MATLAB中的仿真

广义S变换是对信号进行时频分析的一种方法,它基于短时傅里叶变换(Short-Time Fourier Transform,STFT)和小波变换(Wavelet Transform)。广义S变换将信号分解成时频平面上的一系列矩形框,每个框内的数值表示相应时刻和频率下信号的能量。本文将介绍如何使用MATLAB进行广义S变换的仿真,并提供相应的源代码。函数,我们可以方便地计算信号的广义S变换,并获取时频平面上的时域和频域信息。广义S变换在信号处理和相关领域中具有广泛的应用,可以用于分析和处理各种类型的信号。

CodeNexus的博客 1119

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

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

weixin_30241919的博客 233

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值