将页面以excel的形式导出

将页面以Excel的形式到处,常见的做法有两种:

一:在要导成Excel文件中,按如下设置就可完成(打开改页面时,直接以Excel形式被打开)

<%@ page contentType="application/vnd.ms-execl; charset=UTF-8" %>

<%
 response.setContentType("application/vnd.ms-execl");
 response.setHeader("Content-Type", "application/vnd.ms-execl");
 response.setHeader("Content-Disposition", "attachment; filename=Excel.xls");
%> 

。。。。。。。。。。。。。。。。。此处是导出页面的内容,即原来显示数据的画面code

二:以ActiveXObject对象Excel.Application

example:excel.jsp

<%

StringBuffer sb= new StringBuffer();

sb.append("表头");

。。。。。。。

sb.append("结果集");

%>

<html>
<head> 
<title>문제점현황 - Excel </title>
<link rel="stylesheet" href="/css/esh/well/default.css" type="text/css"
 media="screen">
<script language="javascript">
  function OnExcel(){ 
   document.execCommand("SelectAll", false);
   document.execCommand("Copy", true);
   document.execCommand("UnSelect", false); 
   var oXL = new ActiveXObject("Excel.Application"); 
   oXL.Visible = true;   
   var oWB = oXL.Workbooks.Add();  
   var oSheet = oWB.ActiveSheet; 
   oSheet.Paste();  
   oXL.Visible = true;
   oXL.UserControl = true;
  }
</script>
</head>
<body οnlοad="JavaScript:OnExcel()">
 <form name="fm_form" method="post">
 <table border="1">
  <%=sb.toString()%>
 </table>
 </form>
</body>
</html>

两种方法的比较:两种方式excel的导出,只能以纯HTML的形式对页面样式进行控制,不能使用图片 和样式表。

方法一开发比较简单,并且excel导出的结果跟页面是一样的,即原样导出

方法二象比较一是用起来比较复杂些,但由于excel.application提供了许多参数,可对导出的Excel进行全面的控制。

下面提供excel.application的一些参数和方法公使用。

Dim    x(1    To    4,    1    To    5)    As    Integer   
   Dim    a,    i,    j    As    Integer   
   Dim    b    As    String   
    
   Private    Sub    Command1_Click()   
           Dim    ex    As    Object   
           Dim    exbook    As    Object   
           Dim    exsheet    As    Object   
           Set    ex    =    CreateObject("Excel.Application")   
           Set    exbook    =    ex.Workbooks().Add   
           Set    exsheet    =    exbook.Worksheets("sheet1")   
   '按控件的内容赋值   
   '11   
           exsheet.Cells(1,    1).Value    =    Text1.Text   
   '为同行的几个格赋值   
           Range("C3").Select   
           ActiveCell.FormulaR1C1    =    "表格"   
   '          ex.Range("c3").Value    =    "表    格"   
           ex.Range("d3").Value    =    "    春    天    "   
           ex.Range("e3").Value    =    "    夏    天    "   
           ex.Range("f3").Value    =    "    秋    天    "   
           ex.Range("g3").Value    =    "    冬    天    "   
   '大片赋值   
           ex.Range("c4:g7").Value    =    x   
   '按变量赋值   
       a    =    8   
       b    =    "c"    &    Trim(Str(a))   
       ex.Range(b).Value    =    "下雪"   
   '另外一种大片赋值   
           For    i    =    9    To    12   
           For    j    =    4    To    7   
           exsheet.Cells(i,    j).Value    =    i    *    j   
           Next    j   
           Next    i   
   '计算赋值   
   exsheet.Cells(13,    1).Formula    =    "=R9C4    +    R9C5"   
   '设置字体   
   Dim    exRange    As    Object   
   Set    exRange    =    exsheet.Cells(13,    1)   
   exRange.Font.Bold    =    True   
    
   '设置一行为18号字体加黑   
     Rows("3:3").Select   
           Selection.Font.Bold    =    True   
           With    Selection.Font   
                   .Name    =    "宋体"   
                   .Size    =    18   
                   .Strikethrough    =    False   
                   .Superscript    =    False   
                   .Subscript    =    False   
                   .OutlineFont    =    False   
                   .Shadow    =    False   
                   .Underline    =    xlUnderlineStyleNone   
                   .ColorIndex    =    xlAutomatic   
           End    With   
   '设置斜体   
           Range("E2").Select   
           Selection.Font.Italic    =    True   
   '设置下划线   
           Range("E3").Select   
           Selection.Font.Underline    =    xlUnderlineStyleSingle   
    
   '设置列宽为15   
           Selection.ColumnWidth    =    15   
    
   '设置一片数据居中   
   Range("C4:G7").Select   
           With    Selection   
                   .HorizontalAlignment    =    xlCenter   
                   .VerticalAlignment    =    xlBottom   
                   .WrapText    =    False   
                   .Orientation    =    0   
                   .AddIndent    =    False   
                   .ShrinkToFit    =    False   
                   .MergeCells    =    False   
           End    With   
   '设置某区域的小数位数   
           Range("F4:F7").Select   
           Selection.NumberFormatLocal    =    "0.00"   
            
   '求和   
           Range("G9:G13").Select   
           Range("G13").Activate   
           ActiveCell.FormulaR1C1    =    "=SUM(R[-4]C:R[-1]C)"   
   '某列自动缩放宽度   
           Columns("C:C").EntireColumn.AutoFit   
   '画表格   
           Range("C4:G7").Select   
           Selection.Borders(xlDiagonalDown).LineStyle    =    xlNone   
           Selection.Borders(xlDiagonalUp).LineStyle    =    xlNone   
           With    Selection.Borders(xlEdgeLeft)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlThin   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           With    Selection.Borders(xlEdgeTop)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlThin   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           With    Selection.Borders(xlEdgeBottom)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlThin   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           With    Selection.Borders(xlEdgeRight)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlThin   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           With    Selection.Borders(xlInsideVertical)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlThin   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           With    Selection.Borders(xlInsideHorizontal)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlThin   
                   .ColorIndex    =    xlAutomatic   
           End    With   
   '加黑框   
   Range("C9:G13").Select   
           Selection.Borders(xlDiagonalDown).LineStyle    =    xlNone   
           Selection.Borders(xlDiagonalUp).LineStyle    =    xlNone   
           With    Selection.Borders(xlEdgeLeft)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlMedium   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           With    Selection.Borders(xlEdgeTop)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlMedium   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           With    Selection.Borders(xlEdgeBottom)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlMedium   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           With    Selection.Borders(xlEdgeRight)   
                   .LineStyle    =    xlContinuous   
                   .Weight    =    xlMedium   
                   .ColorIndex    =    xlAutomatic   
           End    With   
           Selection.Borders(xlInsideVertical).LineStyle    =    xlNone   
           Selection.Borders(xlInsideHorizontal).LineStyle    =    xlNone   
   '设置某单元格格式为文本   
           Range("E11").Select   
           Selection.NumberFormatLocal    =    "@"   
   '设置单元格格式为数值   
           Range("F10").Select   
           Selection.NumberFormatLocal    =    "0.000_);(0.000)"   
   '设置单元格格式为时间   
           Range("F11").Select   
           Selection.NumberFormatLocal    =    "h:mm    AM/PM"   
    
   '取消选择   
   Range("C10").Select   
   '设置横向打印,A4纸张   
   '          With    ActiveSheet.PageSetup   
   '                  .PrintTitleRows    =    ""   
   '                  .PrintTitleColumns    =    ""   
   '          End    With   
   '          ActiveSheet.PageSetup.PrintArea    =    ""   
           With    ActiveSheet.PageSetup   
   '                  .LeftHeader    =    ""   
   '                  .CenterHeader    =    ""   
   '                  .RightHeader    =    ""   
   '                  .LeftFooter    =    ""   
   '                  .CenterFooter    =    ""   
   '                  .RightFooter    =    ""   
   '                  .LeftMargin    =    Application.InchesToPoints(0.75)   
   '                  .RightMargin    =    Application.InchesToPoints(0.75)   
   '                  .TopMargin    =    Application.InchesToPoints(1)   
   '                  .BottomMargin    =    Application.InchesToPoints(1)   
   '                  .HeaderMargin    =    Application.InchesToPoints(0.5)   
   '                  .FooterMargin    =    Application.InchesToPoints(0.5)   
   '                  .PrintHeadings    =    False   
   '                  .PrintGridlines    =    False   
   '                  .PrintComments    =    xlPrintNoComments   
   '                  .PrintQuality    =    300   
   '                  .CenterHorizontally    =    False   
   '                  .CenterVertically    =    False   
                   .Orientation    =    xlLandscape   
   '                  .Draft    =    False   
                   .PaperSize    =    xlPaperA4   
   '                  .FirstPageNumber    =    xlAutomatic   
   '                  .Order    =    xlDownThenOver   
   '                  .BlackAndWhite    =    False   
   '                  .Zoom    =    100   
           End    With   
   '跨列居中   
           Range("A1:G1").Select   
           With    Selection   
                   .HorizontalAlignment    =    xlCenter   
   '                  .VerticalAlignment    =    xlBottom   
   '                  .WrapText    =    False   
   '                  .Orientation    =    0   
   '                  .AddIndent    =    False   
   '                  .ShrinkToFit    =    False   
                   .MergeCells    =    True   
           End    With   
           Selection.Merge   
    
   '打印表格   
   ActiveWindow.SelectedSheets.PrintOut    Copies:=1   
    
   '取值   
   Text1.Text    =    exsheet.Cells(13,    1)   
   '保存   
   ChDir    "C:/WINDOWS/Desktop"   
   ActiveWorkbook.SaveAs    FileName:="C:/WINDOWS/Desktop/aaa.xls",    FileFormat:=xlNormal,    Password:="123",    WriteResPassword:="",    ReadOnlyRecommended:=False,    CreateBackup:=False   
    
    
         '    关闭工作表。   
         exbook.Close   
         '用    Quit    方法关闭    Microsoft    Excel   
         ex.Quit   
         '释放对象   
         Set    ex    =    Nothing   
         Set    exbook    =    Nothing   
         Set    exsheet    =    Nothing   
   Dim    retval   
   '用excel打开表格   
   retval    =    Shell("C:/Program    Files/Microsoft    Office/Office/EXCEL.EXE"    &    "    "    &    "C:/WINDOWS/Desktop/aaa.xls",    1)   
    
    
         End    Sub


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值