zoukankan      html  css  js  c++  java
  • JavaScript中的ActiveXObject控制Excel的方法

    使用JavaScript中的ActiveXObject填充并设置Excel格式
    1.创建实例并创建工作表
    var XLObj = new ActiveXObject("Excel.Application");//创建Excel实例
    var xlBook = XLObj.Workbooks.Add; //新增工作簿
    var ExcelSheet = xlBook.Worksheets(1); //创建工作表
    2.保存表格
    ExcelSheet.SaveAs("C:\\TEST.XLS");
    3.使 Excel 通过 Application 对象可见
    ExcelSheet.Application.Visible = true;或者ExcelSheet.Visible=true;
    4.打印
    xlBook.PrintOut;或者:ExcelSheet.PrintOut;
    5.关闭
    xlBook.Close(savechanges=false);或者ExcelSheet.Close(savechanges=false);
    6.结束进程
    ExcelSheet.Application.Quit()或者XLObj.Quit(); XLObj=null;
    7.页面设置
    ExcelSheet.ActiveSheet.PageSetup.LeftMargin= 2/0.035; //页边距 左2厘米
    ExcelSheet.ActiveSheet.PageSetup.RightMargin = 3/0.035; //页边距 右3厘米,
    ExcelSheet.ActiveSheet.PageSetup.TopMargin = 4/0.035; //页边距 上4厘米,
    ExcelSheet.ActiveSheet.PageSetup.BottomMargin = 5/0.035; //页边距 下5厘米
    ExcelSheet.ActiveSheet.PageSetup.HeaderMargin = 1/0.035; //页边距 页眉1厘米
    ExcelSheet.ActiveSheet.PageSetup.FooterMargin = 2/0.035; //页边距 页脚2厘米
    ExcelSheet.ActiveSheet.PageSetup.CenterHeader = "页眉中部内容";
    ExcelSheet.ActiveSheet.PageSetup.LeftHeader = "页眉左部内容";
    ExcelSheet.ActiveSheet.PageSetup.RightHeader = "页眉右部内容";
    ExcelSheet.ActiveSheet.PageSetup.CenterFooter = "页脚中部内容";
    ExcelSheet.ActiveSheet.PageSetup.LeftFooter = "页脚左部内容";
    ExcelSheet.ActiveSheet.PageSetup.RightFooter = "页脚右部内容";
    8.对单元格操作,带*部分对于行,列,区域都有相应属性
    ExcelSheet.ActiveSheet.Cells(row,col).Value = "内容"; //设置单元格内容
    ExcelSheet.ActiveSheet.Cells(row,col).Borders.Weight = 1; //设置单元格边框*()
    ExcelSheet.ActiveSheet.Cells(row,col).Interior.ColorIndex = 1; //设置单元格底色*(1-黑色,2-白色,3-红色,4-绿色,5-蓝色,6-黄色,7-粉红色,8-天蓝色,9-酱土色..可以多做尝试)
    ExcelSheet.ActiveSheet.Cells(row,col).Interior.Pattern = 1; //设置单元格背景样式*(1-无,2-细网格,3-粗网格,4-斑点,5-横线,6-竖线..可以多做尝试)
    ExcelSheet.ActiveSheet.Cells(row,col).Font.ColorIndex = 1; //设置字体颜色*(与上相同)
    ExcelSheet.ActiveSheet.Cells(row,col).Font.Size = 10; //设置为10号字*
    ExcelSheet.ActiveSheet.Cells(row,col).Font.Name = "黑体"; //设置为黑体*
    ExcelSheet.ActiveSheet.Cells(row,col).Font.Italic = true; //设置为斜体*
    ExcelSheet.ActiveSheet.Cells(row,col).Font.Bold = true; //设置为粗体*
    ExcelSheet.ActiveSheet.Cells(row,col).ClearContents; //清除内容*
    ExcelSheet.ActiveSheet.Cells(row,col).WrapText=true; //设置为自动换行*
    ExcelSheet.ActiveSheet.Cells(row,col).HorizontalAlignment = 3; //水平对齐方式枚举* (1-常规,2-靠左,3-居中,4-靠右,5-填充 6-两端对齐,7-跨列居中,8-分散对齐)
    ExcelSheet.ActiveSheet.Cells(row,col).VerticalAlignment = 2; //垂直对齐方式枚举*(1-靠上,2-居中,3-靠下,4-两端对齐,5-分散对齐)
    //行,列有相应操作:
    ExcelSheet.ActiveSheet.Rows(row).
    ExcelSheet.ActiveSheet.Columns(col).
    ExcelSheet.ActiveSheet.Rows(startrow+":"+endrow). //如Rows("1:5")即1到5行
    ExcelSheet.ActiveSheet.Columns(startcol+":"+endcol). //如Columns("1:5")即1到5列
    //区域有相应操作:
    XLObj.Range(startcell+":"+endcell).Select;
    //如Range("A2:H8")即A列第2格至H列第8格的整个区域
    XLObj.Selection.
    //合并单元格
    XLObj.Range(startcell+":"+endcell).MergeCells = true;
    //如Range("A2:H8")即将A列第2格至H列第8格的整个区域合并为一个单元格
    或者:XLObj.Range("A2",XLObj.Cells(8, 8)).MergeCells = true;
    9.设置行高与列宽
    ExcelSheet.ActiveSheet.Columns(startcol+":"+endcol).ColumnWidth = 22;//设置从firstcol到stopcol列的宽度为22
    ExcelSheet.ActiveSheet.Rows(startrow+":"+endrow).RowHeight = 22;//设置从firstrow到stoprow行的宽度为22
    Var myrange oSheet.Range(oSheet.Cells(2,1),oSheet.Cells(2,6));
    myRange.Columns.AutoFit()
    myRange.Rows.AutoFit()//好像不太管用
    //设置该区域为自适应高度和宽度
    使用JavaScript将表格内容导出到Excel的方式
    1.整个表格拷贝到EXCEL中
    function CopyTable(tableid)
    {
    //整个表格拷贝到EXCEL中
    var curTbl = document.getElementById(tableid);
    var oXL = new ActiveXObject("Excel.Application");
    //创建AX对象excel
    var oWB = oXL.Workbooks.Add();
    //获取workbook对象
    var oSheet = oWB.ActiveSheet;
    //激活当前sheet
    var sel = document.body.createTextRange();
    sel.moveToElementText(curTbl);
    //把表格中的内容移到TextRange中
    sel.select();
    //全选TextRange中内容
    sel.execCommand("Copy");
    //复制TextRange中内容
    oSheet.Paste();
    //粘贴到活动的EXCEL中
    oXL.Visible = true;
    //设置excel可见属性
    }
    2.把单元格内容拷贝到Excel,并设置单元格格式.
    function method2(tableid) //读取表格中每个单元到EXCEL中
    {
    var curTbl = document.getElementById(tableid);
    var oXL = new ActiveXObject("Excel.Application");
    //创建AX对象excel
    var oWB = oXL.Workbooks.Add();
    //获取workbook对象
    var oSheet = oWB.ActiveSheet;
    //激活当前sheet
    var Lenr = curTbl.rows.length;
    var y=document.getElementById('dropYear');
    var m=document.getElementById('dropMonth');
    //取得表格行数
    oSheet.Cells( 1, 1).value='商户名称:工商银行商城';
    oSheet.Range(oSheet.Cells(1,1),oSheet.Cells(1,6)).Merge()
    oSheet.Cells(2,1).value=日期; '+y.options[y.selectedIndex].value+'-'+m.options[m.selectedIndex].value;
    oSheet.Range(oSheet.Cells(2,1),oSheet.Cells(2,6)).Merge()
    oSheet.Cells( 3, 1).value='销售情况'
    oSheet.Range(oSheet.Cells(3,1),oSheet.Cells(3,6)).Merge()
    oSheet.Cells( 3, 1).HorizontalAlignment=3;
    oSheet.Cells( 3, 1).Font.Size=14;
    oSheet.Cells( 3, 1).Font.Bold = true;
    oSheet.Range(oSheet.Cells(4,1),oSheet.Cells(4,6)).Merge()
    oSheet.Cells(4,1).value=document.getElementById('lbMessage').innerText;
    for (i = 0; i < Lenr; i++)
    {
    var Lenc = curTbl.rows(i).cells.length;
    //取得每行的列数
    for (j = 0; j < Lenc; j++)
    {
    oSheet.Cells(i + 5, j + 1).value = curTbl.rows(i).cells(j).innerText;
    //赋值
    }
    }
    oSheet.Cells(i+6,2).value=document.getElementById('hidSum').value;
    oSheet.Columns.AutoFit();
    oSheet.Rows.AutoFit();
    oSheet.Rows(4).RowHeight = 30;
    oXL.Visible = true;
    //设置excel可见属性
    oXL.Quit();
    oXL = null;
    idTmr = window.setInterval("Cleanup();",1);//强制释放资源
    }
    function Cleanup()//清除Excel资源
    {
    window.clearInterval(idTmr);
    CollectGarbage();
    }
    使用JavaScript按照表格格式复制内容到剪切板
    1.在Excel中进行粘贴
    function copytable()
    {
    var content=''
    var tb=document.getElementById('GVmain');
    var rows=tb.rows;
    for(var i=0;i<rows.length;i++)
    {
    var cells=rows[i].cells;
    for(var j=0;j<cells.length;j++)
    {
    content +=cells[j].innerText.toString()+'\t';
    }
    content +='\n';
    }
    if(content!='')
    {
    clipboardData.setData("text",content);
    alert("复制成功!")
    }
    }
  • 相关阅读:
    为什么下水井盖是圆的
    静心尽力
    菜鸟的一年
    [转]Libev教程
    流媒体:V4L2视频获取
    [转]Libev源码分析 -- 整体设计
    c#操作xml增删改查
    dwz简单配置与操作
    jsonp 跨域访问
    操作cookie.判断浏览器系统版本,判断safir浏览器存储数据
  • 原文地址:https://www.cnblogs.com/ForeverSoft/p/2160658.html
Copyright © 2011-2022 走看看