返回列表 发新帖

如何创建一个pdf文件

305.2k 9
swmozowtfl 发表于 2015-7-10 20:45:48|湖北 | 查看全部 阅读模式
<%
: }  B+ y3 K' h# j6 R- }$ aoption  explicit- J( a& i' S: A9 J! {/ h2 F  P; I
sub checkxldriver()
0 f6 E: ]8 R9 v+ {+ F      on error resume next
( ~6 d& A0 ?$ _$ }7 }: }+ b  n; B9 x
      dim  vconnstring
/ E* n3 t: B$ N5 m" z# x      dim oconn, oerr* j7 U+ J* ~% g$ R8 a

1 \  c5 \7 V8 R  p      vconnstring =  "driver={microsoft excel driver (*.xls)};dbq=nul:"& H3 ~2 c* ?# L5 v3 N/ P7 Y
      ' 连接nul.
% B- i8 {8 H3 m" K; m% q6 g* j( j0 d9 T; O
      set oconn = createobject("adodb.connection")4 `4 C, p$ h3 j, d! L) j' m; Y
       oconn.open vconnstring
: S" f: S6 J" f! F8 K4 B) u( p6 g+ x1 Q$ E& n0 Q
      for each oerr in oconn.errors
6 t, y; m$ a& w% U3 {9 _$ y     '  如果excel程序报告"文件创建失败",别担心,这表示它正在正常运行呢.
4 F& `7 e2 u+ N; T            if  oerr.nativeerror = -5036 then
$ `, s4 F" G8 |1 |  `- f; A                  exit sub
/ T2 L. z- ]5 ]8 x            end  if3 c$ f' `; x- ^( x1 U
      next5 e/ G* \3 A4 H: Y6 ~5 [+ F! s
3 t+ ]) {: e$ {+ S; ^1 H. r. j
      response.write " mdac 供应商或驱动程序不可用,请检查或重新安装!<br><br>"
8 l6 G, X  I" F' i* s' q
6 L- O% M7 U7 E: l) s3 z      response.write hex(err.number)  & " " & err.description & "<br>"9 [* H% L; [% Z  q7 `5 n
      for each oerr in  oconn.errors: N0 Z" r$ a9 X. ~* y
            response.write hex(oerr.number) & " " &  oerr.nativeerror & " " &
! i2 R8 y1 {1 ?) ]! \1 w. doerr.description & "<br>"
4 }- m! W' V6 }% w7 S5 S       next
2 N$ O  H$ |; i" J7 V; N9 p0 H( @) t      response.end
* J! t1 m. V; b& M
; c/ I5 I. ?, q, Kend sub
# w4 ^$ \  c# I# X' X
$ c8 R" B$ X* v$ gfunction  getconnection(vconnstring)5 \' K8 X0 z, R  N4 P, p5 Z
      on error resume next9 b7 D( G9 Q$ ?9 Z: r' B! |/ v

3 v. s1 r" w! f2 k$ s7 O      set  getconnection = server.createobject("adodb.connection")
4 b7 Q: z  k& q       getconnection.open vconnstring
/ y) b& J: l( p
7 h/ S0 ?* k* G3 t, }% s- ]( @2 v      if err.number <> 0 then6 ~6 H; x7 ~- K+ F
             set getconnection = nothing
! C/ L2 ~3 ?. M3 _& n! n; G' J      end if
, H4 `' ~2 G6 Z& ~, ?! j
% g. N/ b! I6 @& a4 H( hend  function
& g1 k' d! q0 r. K: H( y
2 f3 W/ Y! ~# j8 p5 ~& Jfunction optiontag(vchoice,vtrue)% e3 d  w. a7 y+ N1 F+ s
      dim  vselected
& H1 \& I- o9 ?6 b/ t1 h: S) \
' M$ B* @! E# v7 |' M      if vtrue then* _' J* w3 L, v+ m  O! ^
            vselected = "selected"9 i" S0 w/ Q, N; S
       end if
" }! P: |4 _  O% B* L
/ z  p2 b: @+ S. G      optiontag = "<option " & vselected & ">"  & _
& k( l7 D% E6 g3 m4 h            server.htmlencode(vchoice) & "</option>" &  vbcrlf  Z/ V5 H$ J8 `
9 B2 Q5 p1 o- V2 F/ t: i
end function9 `/ `+ t# P8 M- O

1 ]6 n* ~+ u9 @- Gfunction ischecked(vtrue)
9 r' w' @: v* a      if vtrue  then8 @& G- m0 a8 u" s% y5 o5 p% e
            ischecked = "checked"6 I0 @6 B4 {" ]) M( A8 X6 L
      end if4 Q! G) e$ f1 }) k$ f" x4 ?, Y
end  function0 E; k& F4 g  g0 W% S5 x
# ]" l6 j6 j. w( R' q
function bookoptions(vxlfile)! B3 _+ `; {7 j
      dim vserverfolder* k# p, L* j$ y+ @
       dim ofs, ofolder, ofile: z/ }* ], S' y7 p6 t1 {" \
: X2 N  K# C- e% r# p* I( O
      dim vselected
+ ^! l. D6 x3 b, U* p. y0 M" c: q% d, [/ U" D8 G( D) M
      vserverfolder  = server.mappath(".")" w, N8 s! E" I: V+ Z) W, C
1 f, U/ X, \' E0 @+ U
      set ofs =  server.createobject("scripting.filesystemobject")$ M3 R0 X' |  r3 b- u7 z# X: `7 z
      set ofolder =  ofs.getfolder(vserverfolder)
$ K% r4 I! P+ Y$ U; A+ g: e
& v- f7 }% ^) x- a" N9 ?4 T( X      for each ofile in ofolder.files5 k9 a3 ?& e, Y* i' N7 |
             if ofile.type = "microsoft excel worksheet" then$ H& `2 y* T. G" {
                   vselected = (ofile.name = vxlfile)
: l3 d" l9 M  W2 c. t4 B8 ?9 P) M' N4 h
            bookoptions = bookoptions  & _0 h5 z9 L$ [% m( x; Q
                  optiontag(ofile.name, vselected)
, W2 J9 S6 q* N/ O! a9 c            end  if
9 t$ \9 N5 Y0 }& r1 h- c      next
) ~1 w6 W; b1 r3 o  O0 m$ W      set ofolder = nothing
' U! E/ H9 t% `      set ofs =  nothing
" n- l+ r; E( }: b. J9 }4 Z6 O9 W4 u( v2 q; f) f) {
end function9 T3 e" }9 \$ L6 n- {( R

) U) Y+ Z' z. |$ N3 cfunction namedranGEOptions(oconn, vxlrange,  vtabletype)
6 I2 j  w5 Z5 T& x& Z4 a      dim oschemars& y( S1 p( B/ F* O% z+ i" C5 d
      dim vselected
# }. d! l9 `& u5 k7 ]) x9 I4 _! a1 \0 k. @
       namedrangeoptions = optiontag(empty, empty)# Z- U% V6 V. V6 _3 j

* X. N- \: s; {: J+ t' B      if typename(oconn) =  "connection" then
* W; Y$ r! d# R/ ]            set oschemars =  oconn.openschema(adschematables)
( A( ~) A+ C4 ]4 e& e& I& O
( @  h- @5 ]6 T9 J6 J            do while not  oschemars.eof
% Y: |" X' b; W5 J( \8 t; X                  if oschemars("table_type") = vtabletype  then: G( A4 Y1 c6 H2 u3 m
                        vselected = (oschemars("table_name") =  vxlrange)7 S) q# g, m0 U% p
                        namedrangeoptions = namedrangeoptions &  _
9 z; h  \, J& Q                              optiontag(oschemars("table_name"),  vselected)
& K. ]8 A, ?& \" K- t0 r5 a. [+ u5 B
6 S. l0 H" x9 S3 T                  end if9 T$ S' l% [) @5 K2 C6 w  ^0 a) S
                   oschemars.movenext! t4 c: j: S% K0 y* i2 f
            loop# `. u' ^- F6 f2 l( K+ x- b  ^
      end if* R% z3 b8 V; Q4 C
end  function+ R# y( d# k' Z# ]+ N
0 z! _9 P% {+ f8 G
function datatable(oconn, vxlrange, vxlhasheadings)2 T2 b# o9 b) u) N% W+ T! `; \
      on  error resume next
5 h0 ~: {$ D3 z; p* S  [      const db_e_errorsincommand = &h80040e14& W1 \# d( W6 B! d* v

% c/ ?( A0 D8 Q  l- a" M3 X       dim ors, ofield8 C6 }" f! }, n. L
      dim vthtag, vthendtag* j' V9 a8 f) A7 D3 [0 X
) }( A! e; j' x7 w! E
      if  vxlhasheadings then
+ V" ^3 B5 G4 e: }) B: z* o1 R            vthtag = "<th>"! v* W2 |% j$ A$ y5 Y' z
             vthendtag = "</th>"% ~2 Y/ Z: [/ U# d: A
      else
% m. e0 e( R; T6 u            vthtag =  "<td>"1 b! S# {5 f7 \
            vthendtag = "</td>": n' V: |" o' _. m# S! _
      end if
  t$ {1 l1 \6 q: D1 L" |
+ E9 O  w2 S2 f5 u4 \3 C       datatable = "<table border=1>"& N7 s# F, `6 \, V( K
+ k# t; Z' Q. _, L; H$ v! @7 K5 N
      if typename(oconn) =  "connection" then
; x/ R; N- l9 @  F; [            set ors = oconn.execute("[" & vxlrange  & "]")
4 h! b; o( c& r# g5 w
3 X% B' Y4 ]' P, t3 t1 E. w" r            if oconn.errors.count > 0 then
6 W, g( ]6 n. z. Q                   for each oconnerr in oconn.errors
( J% K3 R5 I' ], J' p/ l* H                        if  oconnerr.number = db_e_errorsincommand then
, R" n. @. Y& w# s; X! K$ k                               datatable = datatable & _5 |: I8 {) g  A/ {$ C( [6 O. L
                               "<tr><td>该范围不存在:</td><th>" & vxlrange &  "</th></tr>"
: J( G1 a* K, O4 k4 w" a9 i                        else
# f9 N3 l) K+ d% q$ p  {. U                               datatable = datatable & _0 I  a$ s* [$ @0 Z4 P
                               "<tr><td>" & oconnerr.description &  "</td></tr>"
# f8 s% z7 z$ B! M                        end if
0 x1 j+ y3 P; |* _2 W" K& K                   next8 p9 Y  M& I& F* [  i7 v
            else. y6 \6 j& U  p6 ~0 p
                  datatable = datatable &  "<tr>"
% j6 W8 R, V/ ^' r  S* a" L; w- @+ R" D- F( E
                  for each ofield in ors.fields6 g( y- Z3 w" X. d, {1 w  Z
                         datatable = datatable & vthtag & ofield.name &  vthendtag
$ N& N7 g! k1 F                  next
8 F3 T8 b. ^/ q  L
/ Y, V# K2 w5 R                  datatable =  datatable & "</tr>"* [; e, c. R7 r( G, Y
: B6 M% R6 q1 }$ j8 J9 m
                  do while not ors.eof
- z# K4 E3 @% r) {/ C  L/ L                         datatable = datatable & "<tr>"
2 z+ f) i2 A6 ~) o4 k4 d4 r
. b% l- u! X1 `9 u: I                         for each ofield in ors.fields$ H' N- W+ w; i' I) \% r
                               datatable = datatable & "<td>" & ofield.value &  "</td>"- Q, ?4 |; j5 T) d+ V# _+ C2 x
                        next- ?( _/ [2 K  D

8 y' `$ N6 E- n0 f+ V$ y                         datatable = datatable & "</tr>"
9 q! I/ e+ Q( ~, J7 i3 Y6 Y  T) ?                         ors.movenext
' n8 }$ |' D" O3 ~8 G  D5 b* e) q                  loop      1 Y% n# k: e# g1 ~0 p" \- H
# x$ y  y7 W$ G
            end  if
. v0 U: _4 {' i2 V1 S! `: r- N' K; E1 ]1 Z3 j& w
        :更多精彩教程请关注三联设计教程 栏目,
- p! X) Q- _  o+ o更多技术文章信息请查看: 技术文章

回复|共 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客服 返回顶部
快速回复 返回顶部 返回列表