最近做一個專案,用到了javascript操縱excel以產生報表,下面是標有詳細註解的實例 複製程式碼 程式碼如下: <br><br> <BR>function MakeExcel(){ <BR>var i,j; <BR>try { <BR>var xls = new ActiveXObject ( "Excel.Application" ); <BR>} <BR>catch(e) { <BR>alert( "要列印該表,您必須安裝Excel電子表格軟體,同時瀏覽器須使用“ActiveX 控制項”,您的瀏覽器須允許執行控制項。請點選【幫助】了解瀏覽器設定方法!"); <BR>return ""; <BR>} <BR>xls.visible =true; //設定excel為可見<BR>var xlBook = xls.Workbooks.Add; <BR>var xlsheet = xlBook.Worksheets (1); <BR><!--合併--> <BR>xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).mergecells=true; <BR>xlsheet. Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).value="發卡記錄"; <BR>// xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells( 1,6)).Interior.ColorIndex=5;//設定底色為藍色<BR>// xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Font. ColorIndex=4;//設定字型<BR>// xlsheet.Rows(1). Interior .ColorIndex = 5 ;//設定底色為藍色設定背景色Rows(1).Font.ColorIndex=4 <BR><!--設定行高--> <BR>xlsheet.Rows(1).RowHeight = 25; <BR><!--設定字型ws.Range(ws.Cells(i0 1,j0), ws. Cells(i0 1,j1)).Font.Size = 13 --> <BR>xlsheet.Rows(1).Font.Size=14; <BR><!--設定字體設定選定區的字體xlsheet. Range(xlsheet.Cells(i0,j0), ws.Cells(i0,j0)).Font.Name = "黑體" --> <BR>xlsheet.Rows(1).Font.Name="黑體"; <BR><!--設定列寬xlsheet.Columns(2)=14;--> <BR>xlsheet.Columns("A:D").ColumnWidth =18; <BR><!--設定顯示字元而不是數字--> <BR>xlsheet.Columns(2).NumberFormatLocal="@"; <BR>xlsheet.Columns(7).NumberFormatLocal="@"; <br><br>//設定單元格內容自動換行range.WrapText = true ; <BR>//設定單元格內容水平對齊方式range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//設定單元格內容垂直堆砌方式<BR>//range.VerticalAlignment=Excel. XlVAlign.xlVAlignCenter <BR>//range.WrapText = true; xlsheet.Rows(3).WrapText=true 自動換行<BR>//設定標題列<BR>xlsheet.Cells(2,1).Value="卡號"; <BR>xlsheet.Cells(2,2).Value="密碼"; <BR>xlsheet.Cells(2,3).Value="計費方式"; <BR>xlsheet.Cells(2,4 ).Value="有效天數"; <BR>xlsheet.Cells(2,5).Value="金額"; <BR>xlsheet.Cells(2,6).Value="所屬服務項目"; <BR> xlsheet.Cells(2,7).Value="發卡時間"; <BR>var oTable=document.all['fors:data']; <BR>var rowNum=oTable.rows.length; <BR>for( i=2;i<=rowNum;i ){ <BR>for (j=1;j<=7;j ){ <BR>//html table類容寫到excel <BR>xlsheet.Cells(i 1 ,j).Value=oTable.rows(i-1).cells(j-1).innerHTML; <BR>} <br><br>} <BR><!-- xlsheet.Range(xls.Cells( i 4,2),xls.Cells(rowNum,4)).Merge; --> <BR>// xlsheet.Range(xlsheet.Cells(i, 4), xlsheet.Cells(i-1, 6)) .BorderAround , 4 <BR>// for(mn=1,mn<=6;mn ) . xlsheet.Range(xlsheet.Cells(1, mn), xlsheet.Cells(i1, j)).Columns.AutoFit; <BR>xlsheet.Columns.AutoFit; <BR>xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum 1,7)).HorizontalAlignment =-4108;//居中<BR> ( xlsheet.Cells(1,1),xlsheet.Cells(1,7)).VerticalAlignment =-4108; <BR>xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum 1,7) ).Font.Size=10; <BR>xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum 1,7)).Borders(3).Weight = 2; //設定左邊距<BR>xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum 1,7)).Borders(4).Weight = 2;//設定右邊距<BR>xlsheet.Range( xlsheet.Cells (2,1),xlsheet.Cells(rowNum 1,7)).Borders(1).Weight = 2;//設定頂邊距<BR>xlsheet.Range( xlsheet.Cells(2,1),xlsheet. Cells(rowNum 1,7)).Borders(2).Weight = 2;//設定底邊距<br><br><BR>xls.UserControl = true; //很重要,不能省略,不然會出問題意思是excel交由使用者控制<BR>xls=null; <BR>xlBook=null; <BR>xlsheet=null; <BR>} <br><br><BR> ziyuanweihu 卡号 密码 计费方式 有效天数 金额 所属服务项目 发卡时间 h000010010 543860 计点 2.0 测试项目 2006-06-23 10:14:40.843 h000010011 683352 计点 2.0 测试项目 2006-06-23 10:14:40.843 h000010012 433215 计点 2.0 测试项目 2006-06-23 10:14:40.843 h000010013 393899 计点 2.0 测试项目 2006-06-23 10:14:40.843 h000010014 031736 计点 2.0 测试项目 2006-06-23 10:14:40.843 h000010015 188600 計點 2.0 td> 測試項目 2006-06-23 10:14:40.843 h000010016 363407 計點 2.0 td> 測試項目 2006-06-23 10:14:40.843 h000010017 175315 計點 2.0 td> 測試項目 2006-06-23 10:14:40.843 h000010018 354437 計點 2.0 td> 測試項目 2006-06-23 10:14:40.843 h000010019 234750 計點 2.0 td> 測試項目 2006-06-23 10:14:40.843 表> 表> <身體>; 表> 身體>