javascript 操作 excel 全攻略

最近做一个项目,用到了javascript操纵excel以生成报表,下面是标有详细注解的实例

<html>

<head>
<script language="javascript"
type="text/javascript">

</script><script language="javascript"
type="text/javascript">
function MakeExcel(){
var
i,j;
    try {
      var
xls    = new ActiveXObject ( "Excel.Application"
);
     }
    catch(e)
{
         alert(
"要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。
请点击【帮助】了解浏览器设置方法!");
             
return "";
     }

xls.visible =true;  //设置excel为可见

var xlBook = xls.Workbooks.Add;
    var
xlsheet = xlBook.Worksheets(1);
   
<!--合并-->
     
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).mergecells=true;
     
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).value="发卡记录";
    
// 
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Interior.ColorIndex=5;//设置底色为蓝色 
               
//  
xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Font.ColorIndex=4;//设置字体色         
  
// xlsheet.Rows(1). Interior .ColorIndex = 5 ;//设置底色为蓝色  设置背景色
Rows(1).Font.ColorIndex=4

<!--设置行高-->
   
xlsheet.Rows(1).RowHeight = 25;
   
<!--设置字体 ws.Range(ws.Cells(i0+1,j0), ws.Cells(i0+1,j1)).Font.Size = 13
-->
    xlsheet.Rows(1).Font.Size=14;
   
<!--设置字体 设置选定区的字体  xlsheet.Range(xlsheet.Cells(i0,j0),
ws.Cells(i0,j0)).Font.Name = "黑体" -->
   
xlsheet.Rows(1).Font.Name="黑体";
    <!--设置列宽
xlsheet.Columns(2)=14;-->

xlsheet.Columns("A:D").ColumnWidth
=18;
     <!--设置显示字符而不是数字-->
   
xlsheet.Columns(2).NumberFormatLocal="@";
   
xlsheet.Columns(7).NumberFormatLocal="@";

//设置单元格内容自动换行 range.WrapText  = 
true  ;
     //设置单元格内容水平对齐方式
range.HorizontalAlignment  = 
Excel.XlHAlign.xlHAlignCenter;//设置单元格内容竖直堆砌方式
     
//range.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter
   
//range.WrapText  =  true;  xlsheet.Rows(3).WrapText=true 
自动换行
   
    //设置标题栏

xlsheet.Cells(2,1).Value="卡号";
    
xlsheet.Cells(2,2).Value="密码";
    
xlsheet.Cells(2,3).Value="计费方式";
    
xlsheet.Cells(2,4).Value="有效天数";
    
xlsheet.Cells(2,5).Value="金额";
    
xlsheet.Cells(2,6).Value="所属服务项目";
      
xlsheet.Cells(2,7).Value="发卡时间";

var
oTable=document.all[‘fors:data‘];
     var
rowNum=oTable.rows.length;
   
 for(i=2;i<=rowNum;i++){
     for
(j=1;j<=7;j++){
//html table类容写到excel

xlsheet.Cells(i+1,j).Value=oTable.rows(i-1).cells(j-1).innerHTML;
           
}

}
    <!--  
xlsheet.Range(xls.Cells(i+4,2),xls.Cells(rowNum,4)).Merge;
-->
    // xlsheet.Range(xlsheet.Cells(i, 4),
xlsheet.Cells(i-1, 6)).BorderAround , 4
     //
for(mn=1,mn<=6;mn++) .     xlsheet.Range(xlsheet.Cells(1,
mn), xlsheet.Cells(i1, j)).Columns.AutoFit;
     
xlsheet.Columns.AutoFit;
                
xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum+1,7)).HorizontalAlignment
=-4108;//居中
                  
xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(1,7)).VerticalAlignment
=-4108;
                
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Font.Size=10;

xlsheet.Range(
xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(3).Weight = 2;
//设置左边距
       xlsheet.Range(
xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(4).Weight =
2;//设置右边距
            
xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(1).Weight =
2;//设置顶边距
       xlsheet.Range(
xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(2).Weight = 2;//设置底边距

xls.UserControl = true;  //很重要,不能省略,不然会出问题
意思是excel交由用户控制
      
xls=null;
      
xlBook=null;
       xlsheet=null;

}

</script>  <link href="css/styles3.css" rel="stylesheet"
type="text/css"/>
<title>ziyuanweihu</title>
</head>
<body>
 
<form id="fors" method="post" action="/WebModule/admins/card/showcard.faces"
enctype="application/x-www-form-urlencoded">

<table id="fors:top" border="0" cellpadding="0" cellspacing="0"
width="100%">
<tbody>
<tr>
<td
class="left"><img src="images/jiao1.gif" /></td>
<td
class="topMiddle"></td>
<td class="right"><img
src="images/jiao2.gif"
/></td>
</tr>
</tbody>
</table>            
            
  
      
      
   
<table border="0" cellpadding="0" cellspacing="0"
width="100%">
<tbody>
<tr>
<td
class="middleLeft"></td>
<td class="btstyle"><table
id="fors:sort" border="0" cellpadding="0" cellspacing="0" style="valign:center"
width="100%">
<tbody>
<tr>
<td
class="btstyle"><input type="button" name="fors:_id7"
value="生成excel文件"
onclick="MakeExcel()" /><input type="submit" name="fors:_id8"
value="返回"
/></td>
</tr>
</tbody>
</table>
<table
id="fors:data" border="1" cellpadding="0" cellspacing="1"
width="100%">
<thead>
<tr>
<th
scope="col"><span
id="fors:data:headerText1">卡号</span></th>
<th
scope="col"><span
id="fors:data:headerText2">密码</span></th>
<th
scope="col"><span
id="fors:data:headerText3">计费方式</span></th>
<th
scope="col"><span
id="fors:data:headerText4">有效天数</span></th>
<th
scope="col">金额</th>
<th
scope="col"><span
id="fors:data:headerText6">所属服务项目</span></th>
<th
scope="col"><span
id="fors:data:headerText7">发卡时间</span></th>
</tr>
</thead>
<tbody>
<tr>
<td>h000010010</td>
<td>543860</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010011</td>
<td>683352</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010012</td>
<td>433215</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010013</td>
<td>393899</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010014</td>
<td>031736</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010015</td>
<td>188600</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010016</td>
<td>363407</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010017</td>
<td>175315</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010018</td>
<td>354437</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
<tr>
<td>h000010019</td>
<td>234750</td>
<td>计点</td>
<td></td>
<td>2.0</td>
<td>测试项目</td>
<td>2006-06-23
10:14:40.843</td>
</tr>
</tbody>
</table>
</td>
<td
class="middleRight"></td>
</tr>
</tbody>
</table>

<table id="fors:bottom" border="0" cellpadding="0"
cellspacing="0" width="100%">
     
<tbody>
       
<tr>
          <td
class="left">
           
<img src="images/jiao3.gif"
/>
         
</td>
          <td
class="bottomMiddle">         
</td>
          <td
class="right">
           
<img src="images/jiao4.gif"
/>
         
</td>
       
</tr>
     
</tbody>
    </table>
 <input
type="hidden" name="fors" value="fors" /></form>
</body>

</html>

javascript 操作 excel 全攻略,布布扣,bubuko.com

时间: 2024-08-06 19:49:14

javascript 操作 excel 全攻略的相关文章

.Net常用技巧_VS2005[C#] 操作 Excel 全攻略(转)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.Office.Interop.Excel; using System.Data.SqlClient; using System.Data.

JavaScript 异步开发全攻略(转)

写了一本介绍 JavaScript 异步开发的小书: https://meathill.gitbooks.io/javascript-async-tutorial/content/ 除了比较详细的介绍了异步开发面临的问题,Promise 和异步函数的使用,还结合实际开发中遇到的一些场景进行了分析,给出了范例代码,比如小程序.Vue 等.水平有限,大家如果发现问题,也请不吝赐教. 因为种种原因开启的这个话题,我希望能够把它尽量做完整,所以会保持随时更新,尽量涵盖最近遇到的问题. 希望对大家有所帮助

webBrowser中操作网页元素全攻略

webBrowser中操作网页元素全攻略 2012-12-20 14:21 188人阅读 评论(0) 收藏 举报 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBrowser1.Document.GetElementById("控件ID").InnerText; 或webBrowser1.Document.GetElementById("控件ID").GetAttr

Windows Socket五种I/O模型——代码全攻略(转)

Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权.这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误.但功能强大.为了解决这个问题,提出了进行I/O操作的一些I/O模型,下面介绍最常见的三种: Windows Socket五种I/O模型——代码全攻

Tomcat全攻略

tomcat全攻略 1.tomcat是什么? Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,它早期的名称为catalina,后来由Apache.Sun 和其他一些公司及个人共同开发而成,并更名为Tomcat.Tomcat是应用(java)服务器,它是一个servlet容器,是Apache的扩展,但它是独立运行的.tomat应用于Java Servlet, JavaServer Pages,Java Expression Language以及其他的Javaweb开发的技术. Th

前台页面优化全攻略(三)

经过前两篇文章的实践,你的网站加载速度一定有了非常明显的变化.能把实践跟到这篇文章的人想必一定是极客中的极客.如果你仍对网站的加载速度不满意,可以看看再尝试一下本文中几近疯狂的终极优化方案. 你可以对网站进行快速的优化,但网站日常的节食却很难.也许你已经花了很大的力气去优化你的CSS和JavaScript代码,但是你所做的努力马上又会因为老板或客户期望的新功能而付之东流.所以看来不论是人还是网页,减肥都贵在坚持. 这篇终极减肥方案可能不适合所有的网站,但是我相信它可以引起你对网页大小的重视. 1

Linux(CentOS)搭建SVN服务器全攻略

虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装#yum install subversion 1)创建svn用户#groupadd svn#useradd -g sky user//是将user加入到sky組內切换用户#su svn以后代码库的创建维护等,都用这个帐户来操作. 2)创建版本库编辑.bash_profile 加上如下配置SVN_HOME=

Gradle脚本基础全攻略

[工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.点我开始Android技术交流] 1 背景 在开始Gradle之前请务必保证自己已经初步了解了Groovy脚本,特别是闭包规则,如果还不了解Groovy则可以先看<Groovy脚本基础全攻略>这一篇博客速成一下Groovy基础,然后再看此文即可.关于Gradle速成干货基础详情也请参考Geadle官方网站,不好意思我太Low了. Gradle核心是基于Groovy的领域特定语言(DSL,具体概念参见<

前台页面优化全攻略(四)

通过前几篇文章,你应该已经掌握了很多优化网站的方法.现在你的网站加载速度已经很快了,但是你必须持续的监控你的网站,了解它的大小变化,要不然一段时间过去之后,它可能又成为了一个胖子. 如今每个页面平均已经达到1.7M,每年增长大概32%.你可以通过以下几个工具来查看你的网站是不是又在暴饮暴食,而且它们都是免费的. 1. Pingdom Pingdom是我喜欢的一个在线测试工具.它会揭露出所以你想知道的细节,你可以一清二楚的看到网站的现状:重量.加载速度.代码分析.性能评分.开发者建议,它还提供了一