asp and javascript: sql server export data to csv and to xls
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<%
//塗聚文
//20131021 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 ="Excel" ' Request.QueryString("filetype")();
var connectionString = "Provider=SQLOLEDB.1;"
+ "Data Source=188.68.218.86;"
+ "User ID=sa;"
+ "Password=2011intranet;"
+ "Initial Catalog=intranet";
var sql = ""
+ "SELECT * \n"
'+ ", B_Name \n"
'+ ", B_EnglishName \n"
+ "FROM branch \n"
+ ";";
var filename = "filename";
var columnCount = 3; 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 and javascript: sql server export data to csv and to xls的更多相关文章
- ASP.NET 连接 SQL Server 和 Oracle 教程
临近期末,有很多同学都问我怎么关于ASP.NET 连接 SQL Server 和 Oracle 的问题.由于人太多了,我也不能一一去帮忙,就写了这篇博客.希望对大家有用处. 首先,前期准备是要安装数据 ...
- sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL\data\itsm_Data.MDF'。数据库 'my1' 正在使用该文件的解决方案
对数据库备份进行还原时遇到“sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQ ...
- 利用Asp.net和Sql Server实现留言板功能
本教程设及到:使用SQL Server查询分析器创建数据库:SQL查询语句常用的一些属性值:触发器创建和使用:存储过程的创建,ASP使用存储过程. 正文: 一.创建数据库: 创建一个feedback数 ...
- ASP.NET用SQL Server中的数据来生成JSON字符串
原文引自: 作者: 缺水的海豚 来源: 博客园 发布时间: 2010-09-21 21:47 阅读: 6136 次 推荐: 0 原文链接 [收藏] 摘要:ExtJs用到的数据内容基本 ...
- asp.net 开发 sql server 转 oracle
前段时间我们公司项目 要把sql server 转oracle 分享一下心得 也记录一下问题 开始我研究了一段时间 然后下载了 oracle 11g 版本 和 PL/SQL(客户端) 和sql ser ...
- asp.net连接SQL server,SQLLite,Oracle,Access数据库
asp.net中连接数据库有两种方式为appSettings和connectionStrings connectionStrings比较常用,所以只讲一下connectionStrings方式的连接 ...
- sql server:compare data from two tables
--Comparing data between two tables in SQL Server --Create two Tables-- CREATE TABLE TableA(ID Int, ...
- SQL Server 2008 Data Types and Entity Framework 4
Because I’ve had a lot of conversations about spatial data types lately, I thought I would create a ...
- SQL数据同步到ELK(四)- 利用SQL SERVER Track Data相关功能同步数据(上)
一.相关文档 老规矩,为了避免我的解释误导大家,请大家务必通过官网了解一波SQL SERVER的相关功能. 文档地址: 整体介绍文档:https://docs.microsoft.com/en-us/ ...
随机推荐
- ceph_osd故障检测
1. 当前monitor可以通过3种途径检测到osd离线 1) Osd自主上报 2) Osd通过投票的方式(满足一下条件之一,mon会将osd标记为down) a) ...
- maven No compiler is provided environment
eclipse maven操作正常出现的No compiler is provided in this environment. Perhaps you are running on a JRE ra ...
- rabbitMq使用学习笔记
rabbitmq的工作原理: MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced MessageQueue 高级消息队列协议) ...
- Qt 学习之路 2(39):遍历容器
Qt 学习之路 2(39):遍历容器 豆子 2013年1月16日 Qt 学习之路 2 29条评论 上一节我们大致了解了有关存储容器的相关内容.对于所有的容器,最常用的操作就是遍历.本章我们将详细了解有 ...
- 关于python中的round()和javascript中的round()的比较
ps:python的round()和javascript的round()的比较: javascript:Math.round():正常的标准舍入,就像我们学的数学课本上面的规则 python:pyth ...
- 004 Android XML文件常用五大页面布局方式
1.线性布局(LinearLayout)最常用 <1>使用线性布局,首先在xml文件中修改布局为LinearLayout 修改完成后,可在Component Tree中看见如下内容: &l ...
- RMQ、POJ3264
这里说几篇博客,建议从上到下看 https://blog.csdn.net/qq_31759205/article/details/75008659 https://blog.csdn.net/sgh ...
- (转)一条SQL更新语句是如何执行的
名词 MySQL 里经常说到的 WAL 技术,Write-Ahead Logging 第一个日志模块 redo log 也叫日志重写,是InnoDB 引擎特有的日志 - write pos and c ...
- 采用MQTT协议实现android消息推送(3)选ActiveMQ当服务端
官网: http://activemq.apache.org/ 1.简介 强壮.快速.客户端支持多种语言的mqtt服务端软件. 2.特性 MQTT v3.1.AMQP v1.0.Stomp .Open ...
- maven入门与常用插件使用
maven不仅仅是一款管理jar包的工具,还可以