`
txf2004
  • 浏览: 6866959 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用ASP创建PDF文件

阅读更多
<%
Option Explicit

Sub CheckXlDriver()
On Error Resume Next

Dim vConnString
Dim oConn, oErr

' try to connect to file NUL:
vConnString = "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=NUL:"

Set oConn = CreateObject("ADODB.Connection")
oConn.Open vConnString

For Each oErr in oConn.Errors
' when the Excel driver reports "Failure creating file",
' then it must be installed and working ;-))
If oErr.NativeError = -5036 Then
Exit Sub
End If
Next

Response.Write "Provider or Driver not available. (Re-)Install MDAC.

"

Response.Write hex(Err.Number) & " " & Err.Description & "
"
For Each oErr in oConn.Errors
Response.Write hex(oErr.Number) & " " & oErr.NativeError & " " & oErr.Description & "
"
Next
Response.End

End Sub

Function GetConnection(vConnString)
On Error Resume Next

Set GetConnection = Server.CreateObject("ADODB.Connection")
GetConnection.Open vConnString

If Err.Number <> 0 Then
Set GetConnection = Nothing
End If

End Function

Function OptionTag(vChoice,vTrue)
Dim vSelected

If vTrue Then
vSelected = "selected"
End If

OptionTag = "<option " & vSelected & ">" & _
Server.HtmlEncode(vChoice) & "</option>" & vbCrLf

End Function

Function IsChecked(vTrue)
If vTrue Then
IsChecked = "checked"
End If
End Function

Function BookOptions(vXlFile)
Dim vServerFolder
Dim oFs, oFolder, oFile

Dim vSelected

vServerFolder = Server.MapPath(".")

Set oFs = Server.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFs.GetFolder(vServerFolder)

For Each oFile in oFolder.Files
If oFile.Type = "Microsoft Excel Worksheet" Then
vSelected = (oFile.Name = vXlFile)

BookOptions = BookOptions & _
OptionTag(oFile.Name, vSelected)
End If
Next

Set oFolder = Nothing
Set oFs = Nothing

End Function

Function NamedRangeOptions(oConn, vXlRange, vTableType)
Dim oSchemaRs
Dim vSelected

NamedRangeOptions = OptionTag(Empty, Empty)

If TypeName(oConn) = "Connection" Then
Set oSchemaRs = oConn.OpenSchema(adSchemaTables)

Do While Not oSchemaRs.EOF
If oSchemaRs("TABLE_TYPE") = vTableType Then
vSelected = (oSchemaRs("TABLE_NAME") = vXlRange)
NamedRangeOptions = NamedRangeOptions & _
OptionTag(oSchemaRs("TABLE_NAME"), vSelected)

End If

oSchemaRs.MoveNext
Loop

End If
End Function

Function DataTable(oConn, vXlRange, vXlHasHeadings)
On Error Resume Next

' from OleDbVbc.inc
Const DB_E_ERRORSINCOMMAND = &H80040E14

Dim oRs, oField
Dim vThTag, vThEndTag

If vXlHasHeadings Then
vThTag = "<th>"
vThEndTag = "</th>"
Else
vThTag = "<td>"
vThEndTag = "</td>"
End If

DataTable = "<table border=1>"

If TypeName(oConn) = "Connection" Then
Set oRs = oConn.Execute("[" & vXlRange & "]")

If oConn.Errors.Count > 0 Then
For Each oConnErr in oConn.Errors
If oConnErr.Number = DB_E_ERRORSINCOMMAND Then
DataTable = DataTable & _
"<tr><td>No such range :</td><th>" & vXlRange & "</th></tr>"
Else
DataTable = DataTable & _
"<tr><td>" & oConnErr.Description & "</td></tr>"
End If
Next
Else
DataTable = DataTable & "<tr>"

For Each oField in oRs.Fields
DataTable = DataTable & vThTag & oField.Name & vThEndTag
Next

DataTable = DataTable & "</tr>"

Do While Not oRs.Eof
DataTable = DataTable & "<tr>"

For Each oField in oRs.Fields
DataTable = DataTable & "<td>" & oField.Value & "</td>"
Next

DataTable = DataTable & "</tr>"
oRs.MoveNext
Loop

End If

Set oRs = Nothing
Else

DataTable = DataTable & "<tr><td>File locked by another application or otherwise not accessible. Cannot continue.</td></tr>"
End If

DataTable = DataTable & "</table>"
End Function


' --main--
%>
<html>
<head>
<title>Read Excel</title>
<SCRIPT LANGUAGE=javascript>
<!--
function XlBook_onchange(theForm) {
with (theForm) {
XlSheet.selectedIndex = 0;
XlSheet.disabled = true;
XlNamedRange.selectedIndex = 0;
XlNamedRange.disabled = true;
XlTypedRange.value = "A:IV";
}
}

function XlSheet_onchange(theForm) {
with (theForm) {
XlNamedRange.selectedIndex = 0;
XlTypedRange.value = XlSheet.options[XlSheet.selectedIndex].text;
}
}

function XlNamedRange_onchange(theForm) {
with (theForm) {
XlSheet.selectedIndex = 0;
XlTypedRange.value = XlNamedRange.options[XlNamedRange.selectedIndex].text;
}
}

function XlTypedRange_onchange(theForm) {
with (theForm) {
XlSheet.selectedIndex = 0;
XlNamedRange.selectedIndex = 0;
}
}

//-->
</SCRIPT>
</head>
<body>
<%
Dim vXlFile, vXlFilePath
Dim vXlRange, vXlHasHeadings
Dim vDisabled

Dim vConnString
Dim oConn, oConnErr

Const adSchemaTables = 20 ' from adovbs.inc

CheckXlDriver ' make sure it is working

vXlFile = Request("XlBook")

If vXlFile <> Empty Then

vXlRange = Request("XlTypedRange")

If vXlRange = Empty Then
vXlRange = "A:IV"
Else
vXlRange = Replace(vXlRange, "!", "$")
End If

vXlHasHeadings = Request("XlHasHeadings")

' establish connection
vXlFilePath = Server.MapPath(vXlFile)
vConnString = "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & _ vXlFilePath

Set oConn = GetConnection(vConnString)

Else
vDisabled = "disabled"
End If

%>
<form name=MyForm method="POST" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">
 <table border="1" width="100%">
  <tr>
   <th>Workbook :</th>
   <td>
   <select name="XlBook" LANGUAGE=javascript onchange="return XlBook_onchange(MyForm)">
    <%= BookOptions(vXlFile) %>
    </select></td>
   <td align="center">Worksheet :</td>
   <td><select <%=vDisabled%> name="XlSheet" LANGUAGE=javascript onchange="return XlSheet_onchange(MyForm)">
    <%= NamedRangeOptions(oConn, vXlRange, "SYSTEM TABLE") %>
    </select></td>
  </tr>
<tr>
   <th>Range :</th>
   <td><input type="text" name="XlTypedRange" LANGUAGE=javascript onchange="return XlTypedRange_onchange(MyForm)"
    value ="<%= vXlRange %>"></td>
   <td align="center">Named Range :</td>
   <td><select <%=vDisabled%> name="XlNamedRange" LANGUAGE=javascript onchange="return XlNamedRange_onchange(MyForm)">
    <%= NamedRangeOptions(oConn, vXlRange, "TABLE") %>
    </select></td>
  </tr>
  <tr>
   <th>
    <p> </th>
   <td colspan="3">
    <input type="checkbox" name="XlHasHeadings"
    <%= IsChecked(vXlHasHeadings) %>
    value="True"> Show first row as column headings</td>
  </tr>
  <tr>
   <th>
    <p> </th>
   <td colspan=3>
    <a href=<%= vXlFile %>><%= vXlFile %></a>
   </td>
  </tr>
 </table>
 <input type="submit" value="Submit" name="cmdSubmit"> 
 <input type="reset" value="Reset" name="cmdReset">
</form><hr>
<%
If vXlRange <> Empty Then
Response.Write DataTable(oConn, vXlRange, vXlHasHeadings)
End If
%>
</body>
</html>
分享到:
评论

相关推荐

    asp·net生成PDF详解

    用C#制作PDF文件全攻略 丽水市汽车运输集团有限公司信息中心 苟安廷 目 录 前 言 3 第一部分 iText的简单应用 4 第一章 创建一个Document 4 第一步 创建一个Document实例: 5 第二步 创建Writer实例 6 第三步 打开...

    ASP.NET宝典(pdf文件)

    第一部分:基础知识 第二部分:数据库程序设计 第三部分:高级asp.net 第四部分:创建web服务 第五部分:创建asp.net应用服务

    ASP.NET CORE2.0高级编程.pdf

    ASP.NET CORE2.0高级编程.pdf 电子书 作者:Daniel RothRick Anderson 和 Shaun Luttin ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且连接 Internet 的新式应用程序。 使用 ASP.NET Core,您可以:...

    版本:5.0.0.0 它的主要功能可以被分为3个主要部分:PDF的创建,PDF的编辑和PDF格式的填充

    一个简单的对象模块把pdf文件复杂的结构隐藏起来,这个对象模块允许开发者创建复杂的pdf文件或者用几行代码来插入已有的pdf文件。 PDF4NET库从属于GDI+模型,因此减少了学习的时间,提高了工作效率。它使用了基于...

    ASP.NET Core MVC从入门到精通系列文章PDF版

    本系列文章共计20篇,主要包括ASP.NET Core MVC项目创建,启动运行,以及命名约定,创建控制器,视图,模型,接收参数,传递数据ViewData,ViewBag,路由,页面布局,wwwroot和客户端库,Razor语法,...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  ...

    ASP.NET 中文版(第3版).pdf [ASPN.3]

    ASP.NET 中文版(第3版).pdf 本书主要介绍.NET平台和ASP.NET;HTML编程基础;比较ASP和ASP.NET;ASP.NET中的事件;比较HTML控件和ASP控件;基本的ASP控件API;代码隐藏窗体;使用Visual Studio .NET集成开发环境;...

    PDFView4NET Render 去水印破解版

    创建和填充 PDF 窗体 注释 PDF 文件 操作文档层文件附件和 JAVA 脚本 书签和连接漫游 设计时支持 Visual Studio .NET 2005 WinForms 设计 包内容 面向 Windows 窗体的 PDFView4NET 控件PDFRender4...

    PDF4NET v3.3.5 Cracked

    它通过一个简单的对象模块把pdf文件复杂的结构隐藏起来,这个对象模块允许开发者创建复杂的pdf文件或者用几行代码来插入已有的pdf文件。PDF4NET库从属于GDI+模型,因此减少了学习的时间,提高了工作效率。它使用了...

    ASP.NET MVC 4高级编程 第4版PDF.rar

    ASP.NET MVC 是微软官方提出的一种Web开发框架,通过M是模型(model)-V视图(view)-C控制器(controller)l来设计创建Web应用程序。截至目前最新版本是MVC5,相对于之前的版本MVC5其可扩展性、易用性等方面都不很大的...

    ASP.NET编程百例 PDF扫描版 附源代码(vb.net)

    ASP NET精彩编程百例 pdf 学习ASP NET的必看书籍 讲述了100个ASp NET实例的来笼去脉 由这些实例扩展出许多值得学习的ASP NET技巧 是您学习ASP NET的必看知识 ASP NET是微软.NET战略中的一个重要成员 除了可以使用...

    ASP.NET 3.5开发大全 (中文 PDF 完整书签 非扫描)

    第14章:本章详细的讲解了ASP.NET应用程序和Web Service的概念,为了能够让读者更容易的理解Web Service,本章详细的介绍了XML以及XML类成员是如何进行XML文件的读取和编写的。 第15章:介绍了如何使用ASP.NET中.NET...

    ASP.NET PDF Viewer by GroupDocs:具有DRM功能的安全,与浏览器无关的ASP.NET PDF Viewer-开源

    另一个核心功能–能够以只读模式显示PDF,这样最终用户在浏览器中查看原始PDF文件时就无法下载,打印或复制原始PDF文件。 请注意,用于.NET的GroupDocs.Viewer是一个付费库。 为了设置和运行该项目,您需要从...

    Quick PDF Library(PDF编程控件)

    Quick PDF Library 是一款供 PDF 开发人员使用的 SDK,功能强大、无需版税,其中包括超过500个函数,可用于 Delphi、C、C#、C++、ASP、VB6、VB.NET、VBScript、PHP、PowerBASIC 等,使用 ActiveX、DLL、LIB 或 ...

    Asp.net WebConfig详解

    针对asp.net的配置文件(wenconfig)中各个节点的配置描述(pdf)

    ASP.NET编程百例(PDF)

    ASP.NET是微软.NET战略中的一个重要成员,除了可以使用Visual C#、VB.NET、VisualC++.NET、JScript.NET等语言编写外,还可以使用第三方的.NET接口(如COBOL.NET、 Perl.NET等)进行编写。本书通过100个精彩实例...

    ASP.NET数据库网站设计教程(C#版)[孙士保][电子教案]

    ASP.NET数据库网站设计教程(C#版)[孙士保][电子教案] 第1章 ASP.NET基础 本章内容:C/S和B/S架构...本章内容:ASP.NET Web窗体模型,ASP.NET网站的组成文件,Page对象。 本章重点:ASP.NET Web窗体模型,Page对象。

    文件管理系统源码(Asp.net1.1)

    文件管理文件管理系统源码(Asp.net1.1) 1.使用步骤:(1)默认的管理员51aspx可以在...4.上传控制文件类型,仅Doc Xsl Dwg Jpg Pdf文件可以上传。 5.后台部分,仅管理员可以登录,管理员指拥有查看所有文件权限的用户

Global site tag (gtag.js) - Google Analytics