用ASP创建PDF文件

转载 2006年06月24日 13:40:00

<%
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横向输出和纵向输出PDF

 edition=session("edition") userrole=session("userrole") projectid=request("projectid") pl...
  • wendykui
  • wendykui
  • 2017年04月07日 16:20
  • 483

asp生成xml文件

  • maskice
  • maskice
  • 2015年11月24日 11:56
  • 654

ASP文件操作(FSO)详解

ASP文件操作(FSO)详解 实例一:写入文件  语法  object.CreateTextFile([要建立的文件],[如存在,是否替代])  Set fs  ...
  • wkj001
  • wkj001
  • 2016年11月26日 11:08
  • 314

iOS的创建PDF的步骤

今天的项目中需要在PDF的中创建一些表格和雷达图。 先放最后的效果图: 1、先说雷达图,有两个比较好用的分别是BTSpiderPlotterView和JYRadarChart 这两个库的使用都非常...
  • u013936810
  • u013936810
  • 2014年03月06日 15:22
  • 342

用ASP创建Word文件

SP及其ADO组件简介weifd.com   ---- ASP(Active Server Pages)是一种服务器端的脚本语言,可以把它看作是Html、脚本和 CGI(通用网关接口)的结合。但它却...
  • diti0498
  • diti0498
  • 2014年04月25日 17:23
  • 218

ASP.NET中生成PDF文件

这是看了一下的文章而进行的一个总结,因为最近也在想如何通过程序来生成PDF文件。 Generating PDF files Reponse有个这样的属性ContentType,获取或设置输出流的...
  • zhaowei705523962
  • zhaowei705523962
  • 2013年01月22日 19:27
  • 2367

android 生成pdf文件

由于项目需要将获取的数据文件导出为pdf文件格式,
  • u010276653
  • u010276653
  • 2014年09月30日 10:58
  • 3095

ASP生成静态Html文件技术

现在网站网页生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录,不仅被收录的快还收录的全.前台脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度.  像www.aspid...
  • chinajobs
  • chinajobs
  • 2016年05月13日 10:23
  • 659

利用html创建pdf文件

创建步骤先要创建模板文件,将要生成的pdf文件的大体内容定下来,然后根据模板文件填充数据并存储为html文件,最后将html文件转换为pdf文件。 ## 生成.html文件 ## 思路:首先要...
  • xibeitaiyangliang
  • xibeitaiyangliang
  • 2017年02月13日 22:38
  • 538

用C#制作PDF文件全攻略

PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段“暴力”破解的方法,代码片断如下...
  • u013795673
  • u013795673
  • 2016年01月05日 09:26
  • 5776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用ASP创建PDF文件
举报原因:
原因补充:

(最多只允许输入30个字)