返回列表 发新帖

如何创建一个pdf文件

305.3k 9
swmozowtfl 发表于 2015-7-10 20:45:48|湖北 | 查看全部 阅读模式
<%
7 T! o( ?6 r( aoption  explicit/ m5 C5 o2 c+ J8 Y9 @5 y+ i
sub checkxldriver()
/ C0 _- S- V# M5 o$ @      on error resume next+ b) A* z4 v! n7 S6 H' V

7 z; ~8 b$ M5 A+ @      dim  vconnstring- a( O+ C5 u1 A4 V2 Y; C
      dim oconn, oerr
$ O2 M  v- z2 m: m$ N0 H2 R% X. \4 E2 C% _! U7 p
      vconnstring =  "driver={microsoft excel driver (*.xls)};dbq=nul:"
* n) B7 W' z7 N, a* Z      ' 连接nul.
; [& [2 E5 ]4 y' J* u  g
0 V7 l! B( w& S' U      set oconn = createobject("adodb.connection")  ]0 f# f: T' y$ u$ x
       oconn.open vconnstring2 k0 b* d, R! ?1 H7 n

, p" c5 _/ h5 i. v- W      for each oerr in oconn.errors
- p* t5 ?5 l8 h6 Y' L     '  如果excel程序报告"文件创建失败",别担心,这表示它正在正常运行呢.
& ^  i$ I' y8 W0 X6 U% p  X            if  oerr.nativeerror = -5036 then ! C5 o4 l) _# [
                  exit sub. s; m+ O# G! v% v& z* i
            end  if
1 J! F- R8 w1 O: {, ^      next2 s0 O) k% w8 ]: y7 g4 x) j: }, R; N

. E- k7 Q7 r, r# i9 z/ j      response.write " mdac 供应商或驱动程序不可用,请检查或重新安装!<br><br>"3 b, i/ ?% a; ^0 _* H

# B# y' ?9 A. M- M# p      response.write hex(err.number)  & " " & err.description & "<br>": ~4 S  b3 w1 q
      for each oerr in  oconn.errors
! a; I) G* y/ l# e" K0 |            response.write hex(oerr.number) & " " &  oerr.nativeerror & " " &
, A  K! R1 S, z" O5 Doerr.description & "<br>"
" S/ |% E) y8 J7 l) E; G       next8 l' a3 S0 x& X' @9 |+ D3 o  t& n
      response.end
7 B8 l) G$ v7 M- L. S8 Y9 E* ?2 ~5 P" B% a7 N
end sub
' p& {4 V0 E; P8 V' j$ z  ]: {( A# s# {7 P5 Q' ^! S
function  getconnection(vconnstring)
; I) D. A& k. N/ [! T1 X* f      on error resume next, F( W- J# A) \% I  `: g1 k1 }( w
7 n% v. t9 M4 H5 Q3 t7 F+ E+ G
      set  getconnection = server.createobject("adodb.connection")
- K* @. [* \. g) w- l5 o! o: \; K       getconnection.open vconnstring
. j4 J  C: c/ E- d0 ~/ Q2 X( f) y" c* @
      if err.number <> 0 then! ?( O. L8 i) s: J
             set getconnection = nothing
/ R9 F6 ^5 D7 S9 I) a2 C      end if: T1 ~4 d4 a/ H5 I, k8 l
7 \, H; u* n5 e- \# r
end  function
: R8 [! ^1 }' v2 h; P/ @
! W6 s6 F2 ~8 ]! q9 Efunction optiontag(vchoice,vtrue)
" |4 r% i0 N0 \8 x      dim  vselected$ _- X0 H5 D2 T; o( m

- E# ~! @7 \$ F2 _      if vtrue then, I! f4 ~: a  V- r+ Y) D* ?8 \9 g
            vselected = "selected"
% t. _$ e) U: `. f       end if3 B9 g& ^) f) Q2 Q/ ~0 H
, A. F0 D% i) I* Y8 O, b
      optiontag = "<option " & vselected & ">"  & _
7 x) u, K7 \6 v$ g0 S7 B! H4 I: g$ C            server.htmlencode(vchoice) & "</option>" &  vbcrlf
, ^) z" D3 `, o
' o. N# a& z) e( f, aend function
. G$ }9 N9 ]$ _: n6 Q/ H0 L3 p& u8 u4 ]
function ischecked(vtrue)
# ~, s# t1 ^$ i3 _" I      if vtrue  then
  f7 |4 J- c9 M- V: @3 [! \+ u- m' [            ischecked = "checked"
+ T8 p. g7 v$ i3 x( g, U      end if
/ G3 |. ~8 X6 B2 X6 I; ~end  function
+ h/ H. j4 P3 Y, `* p, M7 S5 _  A% g
function bookoptions(vxlfile)
; u1 C% {9 N  B* ?6 N# B' Q      dim vserverfolder
8 F. |% C; Y  x7 x       dim ofs, ofolder, ofile( U& r- {, ~2 }* `- C2 q- \

' \- P# J; M9 X, y7 Q      dim vselected
3 v3 P: x6 {2 ~& v
# Q$ W) U5 |7 `8 D7 y" L, r      vserverfolder  = server.mappath(".")0 ?4 s  ~. e2 g: D6 F" j

1 I9 H9 ~2 P! b5 ~; k      set ofs =  server.createobject("scripting.filesystemobject")! ^- q" ^& a9 ]+ d2 I" m
      set ofolder =  ofs.getfolder(vserverfolder)/ J, T. }' ~8 k! X" d$ {

& c) F) H& f$ I* L% a% A      for each ofile in ofolder.files& _1 `) N3 c  j  G
             if ofile.type = "microsoft excel worksheet" then3 a' @1 a% y0 l- M7 z( k
                   vselected = (ofile.name = vxlfile)
3 M8 A& }& v* z- {; b$ h" o& Q. o& N
            bookoptions = bookoptions  & _
6 S! J5 e& I, l0 w                  optiontag(ofile.name, vselected)
# D+ L% B" {4 \            end  if
: }  i8 ?/ U: ?1 J      next% K1 K+ L( H8 Y
      set ofolder = nothing6 o- ~( W: d  c
      set ofs =  nothing
9 {& H8 q1 f* z3 m
  X3 x" o# ~' rend function
  `' f2 T, c4 z: N8 D
$ r9 B4 w( W; y0 f3 |% b( Ffunction namedranGEOptions(oconn, vxlrange,  vtabletype)' d  s; X( m( x) z4 e$ Q2 H3 a7 O/ ]3 u
      dim oschemars
$ p- z0 C& }- K8 A      dim vselected
. W; J9 t/ I. ?  s( ]% Q" C
$ q2 @0 d9 G2 r9 H3 g6 X0 u       namedrangeoptions = optiontag(empty, empty)2 {% E! `+ t8 _* @) `6 o% F5 s

: E2 f, G6 i! q; T      if typename(oconn) =  "connection" then4 N4 D+ V* J7 Q3 _8 E- m1 ?; Q
            set oschemars =  oconn.openschema(adschematables)
! @* f, Y. Z- M9 e+ y) R7 w" r, r9 s& y( r
            do while not  oschemars.eof
9 @6 B- _! }9 e- `8 L                  if oschemars("table_type") = vtabletype  then
* ]% o3 t3 v7 \+ Z                        vselected = (oschemars("table_name") =  vxlrange)1 |+ O- n' t# w$ K' K$ h. e7 `. m
                        namedrangeoptions = namedrangeoptions &  _& p+ n' K/ f8 x6 R/ X# L  h
                              optiontag(oschemars("table_name"),  vselected)4 B3 i! l! A1 g1 \
1 I( h9 F( @7 t" b
                  end if
) [6 E1 \/ a8 d. s$ h                   oschemars.movenext
7 Q/ s' {; O% x- L            loop
1 i- q# \" S0 `  R2 ?# t      end if# b% {/ g. W6 w
end  function
  S1 v  N" p( s! o
5 g# C/ ?8 Q. w1 D8 pfunction datatable(oconn, vxlrange, vxlhasheadings)
1 T0 h3 M' `6 {  o9 g8 B7 Z+ J      on  error resume next; t( m: D0 N' p- {/ Z
      const db_e_errorsincommand = &h80040e14
; j  F+ `9 a- l+ U8 `- E  X0 \$ e* M0 i9 n5 R) J) O
       dim ors, ofield: S5 q% w5 P  l4 @
      dim vthtag, vthendtag6 C  T+ a+ H1 |  T' \% d" l7 {7 O

6 F6 r2 ^7 u7 Z6 p% e      if  vxlhasheadings then
" O0 ?* s0 U: m8 D1 l) s  J            vthtag = "<th>"
: t& Z+ Y4 i6 p, j0 q" G9 J2 O             vthendtag = "</th>"5 ~! @9 m) e! E/ q- p% a& ~
      else
$ k9 v7 V2 m' P. y3 D            vthtag =  "<td>"4 b$ L, ~: ^- f+ O# h2 K
            vthendtag = "</td>"! N* I& M+ h0 q, B
      end if! l0 _0 K+ y9 I
9 t; k5 U$ j+ \# h1 D& b) A
       datatable = "<table border=1>"
/ v# a& ]9 h9 O5 h9 t) A/ k# Y% Q8 w/ q# A! u0 r$ u$ x
      if typename(oconn) =  "connection" then5 c7 u7 `# }3 M* }: S" Y
            set ors = oconn.execute("[" & vxlrange  & "]")
/ p) L* |( S& p$ t, I6 D* |8 h2 N6 W! ?# d6 e; d
            if oconn.errors.count > 0 then
& Q! [; g) R. R1 H8 c3 a                   for each oconnerr in oconn.errors% ^: q+ i! f2 K/ j) Q
                        if  oconnerr.number = db_e_errorsincommand then
' @' }9 `6 z# z0 v6 P                               datatable = datatable & _; h1 V. K* ^. G' r/ U) ^8 M
                               "<tr><td>该范围不存在:</td><th>" & vxlrange &  "</th></tr>"
( h" v  `( ^- b  @                        else: R$ w% P5 B& ?; u( o
                               datatable = datatable & _2 N$ `% S$ D; E8 b( S! i3 X
                               "<tr><td>" & oconnerr.description &  "</td></tr>"
' O# d1 E$ j. Q  l                        end if
; Z$ J4 }* ?4 m                   next0 g% u2 m) ?/ l
            else
- r6 p2 Y8 e" m& D0 z1 v                  datatable = datatable &  "<tr>"
7 Z# A+ @$ d7 c. A) ?
* x/ G6 t, s9 _0 f# _3 y                  for each ofield in ors.fields
$ }- [( @7 q4 f7 O                         datatable = datatable & vthtag & ofield.name &  vthendtag6 N0 E' h+ r: J9 g: p# |: ^
                  next3 x* W4 \! ^) S$ A
( F8 k+ x* G0 y- r8 w
                  datatable =  datatable & "</tr>"
" V8 r: ?* b) Y# T2 r; I2 I7 I, {2 e
                  do while not ors.eof
" t7 g, i& R& j' Y: w                         datatable = datatable & "<tr>"
  B$ ]: X7 i+ @' p/ g  R, f1 Q: f- i9 T' ^2 ~% p
                         for each ofield in ors.fields6 Q/ t  j" J7 b: S
                               datatable = datatable & "<td>" & ofield.value &  "</td>"8 y& V; Y- c9 |( z$ {# P( x
                        next  N) O% L  Y) p9 K. _5 l
* P* |: ]3 F' V0 S% ^- r
                         datatable = datatable & "</tr>"5 R" b0 z# R1 t& C6 N$ Y" P
                         ors.movenext: s- q  p' `) k, L
                  loop      . T4 G1 z) `' |& H$ {: |' d, a

% G3 f9 f0 F" A3 b            end  if
0 f; j% q' @  x4 b. J
8 M0 |" ?$ g/ t( d( O% ^  R        注:更多精彩教程请关注三联设计教程 栏目,
. l( `5 B8 I9 d/ I1 e更多技术文章信息请查看: 技术文章

回复|共 9 个

GoodyFouppy 发表于 2016-1-27 15:41:31|日本 | 查看全部
做为老人!在吧里我都懒的都不想说话!送完经验我就走!
mwxny 发表于 2016-1-27 15:41:55|美国 | 查看全部
嘻嘻~` 要是只看你的话~`~`` 很容易让人家以为你也跟偶们一样是天使类~`(偷笑中````````
seazvyt 发表于 2016-1-27 15:42:20|巴西 | 查看全部
出来混 迟早都是要灌的——不灌水怎么混啊
GoodyFouppy 发表于 2016-1-27 15:42:20|哥伦比亚 | 查看全部
看完楼主的帖子,我的心情竟是久久不能平静
wwzcdenleclv 发表于 2016-1-27 15:42:24|美国 | 查看全部
这日子没法过了....
alapScady 发表于 2016-2-18 19:41:46|欧洲 | 查看全部
呵呵  我傻了‘~~哈哈
Mqokjdvq 发表于 2016-2-18 19:41:46|美国 | 查看全部
嘿...反了反了,,,,
buingeEvineus 发表于 2016-2-18 19:42:26|美国 | 查看全部
嘻嘻~` 要是只看你的话~`~`` 很容易让人家以为你也跟偶们一样是天使类~`(偷笑中````````
mwxny 发表于 2016-2-18 19:43:07|沙特阿拉伯 | 查看全部
这个论坛值得推荐,给了我们这么好的一个平台

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表