javascript 导excle 多表对应一个EXCEL

原创 2007年09月29日 17:40:00
 function printExcle(fromrow,pageId) {
 //pageId传的是一个table的对象
  //alert(pageId);
  //alert(fromrow);
  //alert('11111');
    var oXL = new ActiveXObject("Excel.Application"); //创建应该对象
      var oWB = oXL.Workbooks.Add();//新建一个Excel工作簿
      var oSheet = oWB.ActiveSheet;//指定要写入内容的工作表为活动工作表
      var table = pageId;
      var rows = table.rows.length;
      var colSumCols = table.rows(0).cells.length;
      var beginCol = 0;
      var cols = colSumCols;
      var rowSpans=1;  //行合并
      var colSpans=1;  //列合并
     //寻找列数,考虑到第一行可能存在合并
     for (var i=0; i<colSumCols;i++) {
         var tmpcolspan = table.rows(0).cells(i).colSpan;
         if ( tmpcolspan>1 ) {
             cols += tmpcolspan-1;
         }
     }
     //定义2维容器数据,1:行;2:列;值(0 可以填充,1 已被填充)
     var container=new Array(rows);
     for (var i=0;i<rows;i++) {
         container[i]=new Array(cols);
         for (j=0;j<cols;j++) {
             container[i][j]=0;
         }
     }
     //将所有单元置为文本,避免非数字列被自动变成科学计数法和丢失前缀的0
    
     oSheet.Range(oSheet.Cells(fromrow+1,1), oSheet.Cells(fromrow+rows,cols)).NumberFormat = "@";
     oXL.Visible = true;
     // Add table headers going cell by cell.
     for (i=0;i<rows;i++){
         for (j=0;j<cols;j++){
             //寻找开始列
             for (k=j;k<cols;k++){
                 if (container[i][k]==0) {
                     beginCol=k;
                     k=cols; //退出循环
                 }
             }
             //赋值
             try{
             oSheet.Cells(i+1+fromrow,beginCol+1).value = table.rows(i).cells(j).innerText;
             colSpans = table.rows(i).cells(j).colSpan;
             if (colSpans>1) {
                 //合并
                 oSheet.Range(oSheet.Cells(i+1+fromrow,beginCol+1), oSheet.Cells(i+1+fromrow,beginCol+colSpans)).Merge();
             }
             //将当前table位置填写到对应的容器中
             for (k=0; k<colSpans;k++) {
                 container[i][beginCol+k]= 1;
             }
             rowSpans = table.rows(i).cells(j).rowSpan;
             if (rowSpans>1) { //行合并
                 oSheet.Range(oSheet.Cells(i+1+fromrow,beginCol+1), oSheet.Cells(i+rowSpans+fromrow,beginCol+colSpans)).Merge();
                 //将当前table位置填写到对应的容器中
                 for (k=1; k<rowSpans;k++) {  //由于第0行已经被colSpans对应的代码填充了,故这里从第1行开始
                     for (l=0;l<colSpans;l++) {
                         container[i+k][beginCol+l]=1;
                     }
                 }
             }
             //如果开始列+合并列已经等于列数了,故不需要再循环html table
             if (beginCol+colSpans>=cols) j=cols;
             }catch(e){
             }
         }
     }
     //字符大小为9
     oSheet.Range(oSheet.Cells(fromrow+1,1), oSheet.Cells(fromrow+rows,cols)).Font.Size=9;
     //自动调整列宽
     oSheet.Range(oSheet.Cells(1,1), oSheet.Cells(fromrow+rows,cols)).Columns.AutoFit();
     //自动调整行高
     oSheet.Range(oSheet.Cells(fromrow+1,1), oSheet.Cells(fromrow+rows,cols)).Rows.AutoFit();
     //划边框
     oSheet.Range(oSheet.Cells(fromrow+1,1), oSheet.Cells(fromrow+rows,cols)).Borders.LineStyle = 1;
     return rows;
 }
 <!--***********下边是图片********************-->
 
 function copyToExcel(){  
  
    //alert(pics);          
   var excelOBJ= new ActiveXObject("Excel.Application"); //实例化对象 
   var sheet = excelOBJ.WorkBooks.Add();//建立一个新的Excel
   //alert(sheet);
   //alert("picPath======" + pics);
 sheet.Sheets(1).Pictures.Insert(pics);//查如图片pics指的是图片的url 向excle中插入图片
   excelOBJ.Quit();  
  excelOBJ=null;  
   }
       
     function copyToExcel1(){ 
       
       var excelOBJ= new ActiveXObject("Excel.Application");  
       var sheet = excelOBJ.WorkBooks.Add();
       //alert(sheet);
       alert("picPath======" + pics1);
       sheet.Sheets(1).Pictures.Insert(pics1);//查如图片pics指的是图片的url 向excle中插入图片
       excelOBJ.Quit();  
      excelOBJ=null;  
       } 

javascript 导excle 根据url导入excel

                  var idTmr="";               var pics = basePathOne+"";               function copy...
  • xiaoma5656
  • xiaoma5656
  • 2007年09月27日 15:52
  • 258

javascript 导excle

 把页面的内容导成excle表格1table中不存在跨行或快列的情况unction AutomateExcel(){  var oXL = new ActiveXObject("Excel.Appli...
  • xiaoma5656
  • xiaoma5656
  • 2007年09月25日 10:16
  • 240

pdm数据库设计导出excel

今天收到一个需求,要把数据库设计给一个excel版本的,百度出来一个脚本文件,很好用发现,留个纪念 在pd中,shift+ctrl+X,打开脚本运行,脚本如下,附件也留了一份: '****...
  • zxp111234
  • zxp111234
  • 2016年02月19日 14:30
  • 1241

kettle案例八连接hive--抽取hive的数据保存excel

我们在上篇文章已经学习了如何把数据放入hive中。 kettle案例七连接hive–抽取mongodb的数据保存到hive 本章学习如何把数据从hive中导出来。 官网参考连接 https:/...
  • q383965374
  • q383965374
  • 2018年01月17日 19:12
  • 556

PL/SQL批量导入excel数据出错

PL/SQL想要批量导入excel数据的时候,出了错。 各种查阅百度资料,各种方法都不成功,后来想起来,自己的office当年装的可能是网上下载的越狱版本,这才发觉可能与这个原因有关。 将原有的o...
  • Podge
  • Podge
  • 2018年01月17日 09:26
  • 253

Javascript实现把网页中table的内容导入到excel中的几种方法

Javascript实现把网页中table的内容导入到excel中的几种方法                                    一、            直接拷贝整个表格到EXC...
  • e_zhiwen
  • e_zhiwen
  • 2010年10月29日 16:49
  • 991

Java web项目利用POI导出excel

今天做项目需要导出excel文件,采用POI生成excel结构。方式如下:(解决了中文名称下载问题) 方式一: import java.io.ByteArrayOutputStream; impor...
  • littlebirdofjava
  • littlebirdofjava
  • 2015年03月30日 16:29
  • 12035

关于excel导出功能的一个很奇怪的bug

开发了数月终于把web项目上线了,然而不幸的是,没过多久就收到用户的投诉,说每隔一段时间就会连不上数据库,而且这个时间还是不固定的,还好后台配了日志,查日志查好久终于揪出了一个很奇葩的错误: (报的是...
  • Youthjack
  • Youthjack
  • 2016年12月09日 16:41
  • 356

java生成 excel 并导出文件

一、介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。这样在...
  • xunwei0303
  • xunwei0303
  • 2016年11月18日 10:10
  • 12183

js前端导出Excel

需求:               要求把项目中的table表格导出Excel 需求分析及解决:               既然需要导出,是报表的可能性比较大,我的项目中就是这样,那既...
  • QiaoRui_
  • QiaoRui_
  • 2017年09月18日 14:31
  • 1532
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript 导excle 多表对应一个EXCEL
举报原因:
原因补充:

(最多只允许输入30个字)