CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

asp操作Excel的两个问题

楼主wangwuyou(天厌地弃)2005-12-07 17:24:37 在 Web 开发 / ASP 提问

server.scripttimeout=100000        
  on   error   resume   next  
  Set   xlApp   =   CreateObject("Excel.Application")    
  xlApp.DisplayAlerts   =   false  
  xlApp.Application.Visible   =   false    
  xlApp.WorkBooks.add  
  set   xlBook=xlApp.ActiveWorkBook  
  set   xlSheets=xlBook.WorkSheets  
  set   xlSheet=xlBook.Sheets(1)  
  ……  
  xlSheet.cells(i,j).value="……"  
  xlSheet.cells(i,j).font.size="……"  
  ……  
  xlBook.SaveAs   userid&".xls"  
  set   xlsheet=nothing  
  set   xlBook=nothing  
  xlApp.Quit  
  set   xlApp=nothing  
  xlname=userid&".xls"  
  response.Redirect(xlname)  
   
  在用上面的方法操作Excel时出现两个问题:  
  1:当xlSheet.cells(i,j).value的值为数字类型时,数字都是靠右对齐的,有什么方法能设置成默认靠左的?  
  2:当在一台机子上同时打开两个以上的该页面时,就出出现死循环,Excel.exe进程占CUP近100%,这个问题又如何解决呀。 问题点数:50、回复次数:9Top

1 楼crore(阿慧南)回复于 2005-12-07 17:53:47 得分 5

1:试试看后边加个空格!  
  或者在前面     "'"     好像可以转换为   字符  
   
  2:   Excel.Application   不允许同时打开2个同名的excel   文件.要不一定死了!Top

2 楼wangwuyou(天厌地弃)回复于 2005-12-07 18:30:02 得分 0

1:真接加""   没有用,倒是加了chr(13)后可以了。  
  我用   xlSheet.cells(x,y).Halignment=2     设置居中对齐,没有什么用,有什么错误吗  
  2:我在山东移动的网站上见过,不是同时打开多个,而是打开下一个时,上一个页面内容就变为空的了,不过那是用JSP做的,不知怎么实现。Top

3 楼hongzi001179(雄)回复于 2005-12-07 18:33:22 得分 0

我也想知道!Top

4 楼wangwuyou(天厌地弃)回复于 2005-12-08 08:11:26 得分 0

没有高手指点咯……Top

5 楼wangwuyou(天厌地弃)回复于 2005-12-09 10:25:54 得分 0

唉!!!!Top

6 楼yousite1(国雾)回复于 2005-12-09 10:34:11 得分 40

试试这个行不行?  
   
      xlSheet.cells(i,j).HorizontalAlignment=   3   '居中对齐  
  至于其它对齐方式值为多少,你可以在excel操作的时侯录制成宏再查看宏代码,就差不多了。  
  如果是常量的就msgbox   xzxx调试一下就可以看出来了。  
  下面我给你个我写的代码作示例。Top

7 楼yousite1(国雾)回复于 2005-12-09 10:35:09 得分 0

<%@LANGUAGE="VBSCRIPT"   CODEPAGE="936"%>  
  <!--#include   file="../inc/mdconn.asp"-->  
   
  <%dim   rst  
          assureNo=trim(request("assureNo"))  
  assureNo=replace(assureNo,"'","")  
  assureNo=replace(assureNo,"   and   ","")  
  if   assureNo=""   then  
    response.write   "对不起找不到相应的保修卡信息!"  
    response.end  
  end   if  
          strSql   =   "SELECT   *   from   assure   WHERE   assureNo='"+assureNo+"'"  
  Set   rst   =   Server.CreateObject("ADODB.Recordset")  
  rst.Open   strSql,   conn,   1,   1  
  if   rst.bof   and   rst.eof   then  
    response.write   "对不起找不到相应的保修卡信息!"  
    response.end  
  end   if  
  %>  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>保修卡打印</title>  
  </head>  
  <script   language=vbscript>  
  'sub   test  
   
  'on   error   resume   next  
   
    engineName="<%=rst("engineName")%>"   '机种名称  
    engineNo="<%=rst("engineNo")%>"   '发动机编号  
    frameNo="<%=rst("frameNo")%>"     '框架号  
    buyDate="<%=rst("buyDate")%>"             '购入日期  
    userName="<%=rst("userName")%>"                                       '用户   姓名  
    usersex="<%=rst("usersex")%>"                     '用户   性别  
    userage="<%=rst("userage")%>"                       '用户   年龄  
    userAddress="<%=rst("userAddress")%>"                         '用户   住址  
    userschoolAge="<%=rst("userschoolAge")%>"                                         '用户学历(文化水平)  
    userTel="<%=rst("userTel")%>"                     '用户   电话  
    userpostNum="<%=rst("userpostNum")%>"                   '用户   邮编  
    usermainPurpose="<%=rst("usermainPurpose")%>"                     '用户主要用途/场所  
    sellName="<%=rst("sellName")%>"                         '销售店名称  
    sellAddress="<%=rst("sellAddress")%>"                       '销售店地址  
    sellTel="<%=rst("sellTel")%>"                           '销售店电话  
    sellpostNum="<%=rst("sellpostNum")%>"         '销售店邮编  
    clearOption="<%=rst("clearOption")%>"         '销售商店说明事项   (明白项)  
    clear_Option=split(clearOption,",")     '分离开每一项  
    dim   chkFlag(12)  
    for   i=1   to   12  
      chkFlag(i)=false     '初始化  
    next  
    for   each   id   in   clear_Option  
        if   isnumeric(id)   then  
            chkFlag(id)=true  
        end   if  
    next  
     
  Set   ExcelAppx=CreateObject("Excel.Application")  
  With   ExcelAppx    
    .Workbooks.Add  
    set   objExcelBook=ExcelAppx.ActiveWorkBook  
    set   objExcelSheets=objExcelBook.Worksheets  
    set   objExcelSheet=objExcelBook.Sheets(1)  
        FOR   I=1   TO   18  
        FOR   J=1   TO   8  
          .cells(I,J).NumberFormatLocal   =   "@"  
        NEXT  
      NEXT  
  objExcelSheet.Range("E28:E39").HorizontalAlignment=   3   '居中对齐  
    .Range("A1:H1").Select  
      .Selection.Merge  
      .ActiveCell.font.size=16  
      .ActiveCell.FormulaR1C1="保         修         凭         证"  
      .ActiveCell.HorizontalAlignment=   3   '居中对齐  
        .Columns("A:A").ColumnWidth   =   5.50   '设置列的部分****************  
        .Columns("B:B").ColumnWidth   =   5.50  
        .Columns("C:C").ColumnWidth   =   12.13  
        .Columns("D:D").ColumnWidth   =   11.63  
        .Columns("E:E").ColumnWidth   =   8.25  
        .Columns("F:F").ColumnWidth   =   5.88  
        .Columns("G:G").ColumnWidth   =   5.00  
        .Columns("H:H").ColumnWidth   =   13.00  
      .Rows("1:1").RowHeight=20.25   '设置行的部分****************  
      .Rows("2:2").RowHeight=6.00  
      .Rows("3:6").RowHeight=14.25  
      .Rows("7:7").RowHeight=24.00  
      .Rows("8:8").RowHeight=22.50  
      .Rows("9:9").RowHeight=19.50  
      .Rows("10:10").RowHeight=21.00  
      .Rows("11:12").RowHeight=19.50  
      .Rows("13:13").RowHeight=23.25  
      .Rows("14:14").RowHeight=25.50  
      .Rows("15:15").RowHeight=26.25  
      .Rows("16:16").RowHeight=30.75  
      .Rows("17:17").RowHeight=21.75  
      .Rows("18:18").RowHeight=23.25  
      .Rows("19:19").RowHeight=4.50  
      .Rows("20:20").RowHeight=20.50  
      .Rows("21:22").RowHeight=14.25  
      .Rows("23:23").RowHeight=20.25  
      .Rows("24:25").RowHeight=14.25  
      .Rows("26:26").RowHeight=6.75  
      .Rows("27:41").RowHeight=14.25  
      .Rows("40:40").RowHeight=2.25  
    .Range("A1:H41").Select   '设置成单元格居中放置*********  
        .ActiveCell.VerticalAlignment   =   -4108  
    .Range("A3:B3").Select  
      .Selection.Merge  
  .ActiveCell.FormulaR1C1="QR-19-01"  
    .Range("A4:H4").Select  
      .Selection.Merge  
      .ActiveCell.font.size=10  
  .ActiveCell.FormulaR1C1="1.请认真保管保修凭证"  
    .Range("A5:H5").Select  
      .Selection.Merge  
      .ActiveCell.font.size=10  
  .ActiveCell.FormulaR1C1="2.请认真阅读保证书内容和保证规定"  
    .Range("A6:H6").Select  
      .Selection.Merge  
      .ActiveCell.font.size=10  
  .ActiveCell.FormulaR1C1="3.在购买商店中领取保修凭证时,注意请店方在保修凭证中按要求填入必要的事项。"  
  FOR   I=7   TO   10  
    .Range("A"&I&":C"&I).Select  
      .Selection.Merge  
      select   case   i  
        case   7  
          .ActiveCell.FormulaR1C1="机   种   名   称"  
        case   8  
            .ActiveCell.FormulaR1C1="发   动   机   编   号"  
        case   9  
            .ActiveCell.FormulaR1C1="框     架     号"  
        case   10  
          .ActiveCell.FormulaR1C1="购   入   日   期"  
    end   select  
  .ActiveCell.HorizontalAlignment=   3   '居中对齐  
      .Range("D"&I&":H"&I).Select  
      .Selection.Merge  
          select   case   i  
        case   7  
          .ActiveCell.FormulaR1C1=engineName  
        case   8  
            .ActiveCell.FormulaR1C1=engineNo  
        case   9  
            .ActiveCell.FormulaR1C1=frameNo  
        case   10  
          .ActiveCell.FormulaR1C1=buyDate  
    end   select  
  NEXT  
    .Range("A11:A15").Select  
    .Selection.Merge  
    .ActiveCell.WrapText   =   True     '自动换行  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="用                         户"  
    .Range("B11:C12").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="姓         名"  
      .Range("D11:D12").Select  
    .Selection.Merge  
      .ActiveCell.FormulaR1C1=userName  
    objExcelSheet.Range("E11:H11").Value=Array("性别:",usersex,"年龄:",userage&"")  
    objExcelSheet.Range("E12:E12").Value=Array("文化水平")   '********************  
    .Range("F12:H12").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1=userschoolAge  
    .Range("B13:C13").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="住  址"  
    .Range("D13:H13").Select  
    .Selection.Merge  
      .ActiveCell.FormulaR1C1=userAddress  
    .Range("B14:C14").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="电  话"  
    .Range("D14:F14").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1=userTel  
       
        .Range("B15:C15").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="主要用途/场所"  
    .Range("D15:H15").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1=usermainPurpose  
    .Range("A16:A18").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="销     售       店"  
    .ActiveCell.WrapText   =   True     '自动换行  
      .Range("B16:C16").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="销售店名称"  
    .Range("D16:F16").Select  
    .Selection.Merge  
      .ActiveCell.FormulaR1C1=sellName  
    .Range("G16:H16").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="印章"  
    .Range("B17:C17").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1=" 地址"  
    .Range("D17:H17").Select  
    .Selection.Merge  
      .ActiveCell.FormulaR1C1=sellAddress  
      .Range("B18:C18").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1=" 电话"  
      .Range("D18:F18").Select  
      .Selection.Merge  
      .ActiveCell.FormulaR1C1=sellTel  
    objExcelSheet.Range("G18:H18").Value=Array("邮编:",sellpostNum)  
    objExcelSheet.Range("G14:H14").Value=Array("邮编:",userpostNum)  
      .Range("A20:H20").Select  
    .Selection.Merge  
    .ActiveCell.HorizontalAlignment=   3   '居中对齐  
    .ActiveCell.FormulaR1C1="重   要   注   意"  
    .ActiveCell.font.ColorIndex   =   2   '设置字体颜色为白色  
    .ActiveCell.Interior.ColorIndex   =   1   '设置单元格背景为黑色  
    .Range("A21:H21").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1="本凭证作为重要的用户资料加以保管,因此请用户必须将此凭证认真填写"  
  Top

8 楼yousite1(国雾)回复于 2005-12-09 10:35:37 得分 0

.Range("A22:H22").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1="并将闽东本田联寄往厂家。还可以参与抽奖,获得精美礼品。"  
    .Range("A23:B23").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1="致各位客户:"  
    .Range("A24:H24").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1="交付本机时。请用户注意在购买商店中接受以下全部的事项说明。对已明白的"  
      .Range("A25:H25").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1="事项在说明栏中画上√标记,并请在署名栏目中签名。"  
      .Range("B27:D27").Select  
    .Selection.Merge  
    .ActiveCell.FormulaR1C1="销   售   商   店   说   明   事   项"  
        .Range("E27:E27").Select  
    .ActiveCell.FormulaR1C1="检   查"  
    for   i=28   to   39    
        objExcelSheet.Range("B"&I&":"&"B"&I).Value=Array(CSTR(I-27))  
        .Range("C"&I&":"&"D"&I).Select  
        .Selection.Merge  
    select   case   i  
        case   28  
          .ActiveCell.FormulaR1C1="安全使用说明"  
        case   29  
            .ActiveCell.FormulaR1C1="各部件名称及其操作"  
        case   30  
            .ActiveCell.FormulaR1C1="发电机/水泵运转前的检查"  
        case   31  
          .ActiveCell.FormulaR1C1="启动发动机的方法"  
      case   32  
          .ActiveCell.FormulaR1C1="发电机/水泵使用方法"  
      case   33  
          .ActiveCell.FormulaR1C1="关闭发动机的方法"  
      case   34  
          .ActiveCell.FormulaR1C1="接受定期检查"  
      case   35  
          .ActiveCell.FormulaR1C1="简易检修及保修"  
      case   36  
          .ActiveCell.FormulaR1C1="长期不使用情况下的维护"  
      case   37  
          .ActiveCell.FormulaR1C1="请求维修前的检查"  
      case   38  
          .ActiveCell.FormulaR1C1="电源使用范例"  
    end   select  
    if   chkFlag(i-27)   then  
            objExcelSheet.Range("E"&i&":"&"E"&i)="√"  
    end   if  
    next  
      .range("B27:E39").Borders.LineStyle=1   '画边框  
    .Range("A41:E41").Select  
    .Selection.Merge  
    .ActiveCell.font.size=9  
    .ActiveCell.FormulaR1C1="■已经全部接受了保证书中各个项目的说明并理解其内容"  
    '*****************这里开始画边框************************************  
      .range("A7:H10").Borders.LineStyle=1   '画边框  
      .range("A11:C15").Borders.LineStyle=1   '画边框  
    .range("D11:D12").Borders.LineStyle=1   '画边框  
    .range("E11:H11").Borders(3).LineStyle=1   '画上边框  
    .range("E11:H11").Borders(4).LineStyle=1   '画下边框  
    .range("H11:H12").Borders(2).LineStyle=1   '画右边框  
      .range("E12:H12").Borders(4).LineStyle=1   '画下边框  
      .range("D13:H13").Borders.LineStyle=1   '画边框  
    .range("D14:H14").Borders(3).LineStyle=1   '画上边框  
    .range("D14:H14").Borders(4).LineStyle=1   '画下边框  
    .range("H13:H14").Borders(2).LineStyle=1   '画右边框  
    .range("D15:H15").Borders.LineStyle=1   '画边框  
    .range("A16:C18").Borders.LineStyle=1   '画边框  
    .range("D16:H16").Borders(3).LineStyle=1   '画上边框  
    .range("A17:h17").Borders.LineStyle=1   '画边框  
    .range("D18:H18").Borders(4).LineStyle=1   '画下边框  
      .range("H16:H18").Borders(2).LineStyle=1   '画右边框  
  '*************************************新增部分***********************************  
              '.range("A7:H10").HorizontalAlignment   =   -4108   '单元格街竖直对齐方式  
              .range("A7:H10").VerticalAlignment   =   -4108       '单元格水平对齐方式-4108表示居中对齐  
      .range("A11:H15").VerticalAlignment   =   -4108       '单元格水平对齐方式-4108表示居中对齐  
      .range("A16:H18").VerticalAlignment   =   -4108       '单元格水平对齐方式-4108表示居中对齐  
      .range("D16:H17").wrapText=true  
          .Rows("16:16").RowHeight=30.75  
  '************************************新增部分结束********************************      
      'exit   sub  
          .Visible=True       '设置为可见的!*************  
      End   With  
      ExcelAppx.ActiveWindow.SelectedSheets.PrintPreview   '实现打印预览  
      window.close  
  'end   sub  
     
  </script>  
  <body>  
  如果不能正常打印请检查IE设置    
  </body>  
  </html>  
  Top

9 楼Camelot(罕疯)回复于 2005-12-09 10:56:38 得分 5

可以用ado的方式调用excel,不过不太方便,推荐打开是用fso复制一份excel文件,关闭是删除,这样就能实现多人同时打开了Top

相关问题

  • ASP与EXCEL的交互操作!!
  • 高分求教,ASP操作Excel相关.
  • ASP中操作EXCEL的问题!
  • 高手请进,200分相送,关于操作ASP操作excel文件
  • Excel 操作
  • VB excel操作???
  • 操作excel?
  • EXCEL操作
  • C# 操作Excel
  • Delphi操作Excel

关键词

得分解答快速导航

  • 帖主:wangwuyou
  • crore
  • yousite1
  • Camelot

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo