欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js操作Excel,js导出Excel,如同vba操作Excel(对ie8及其以上浏览器)

程序员文章站 2022-07-03 21:03:13
...

js操作操作Excel的方法,
如同vba 操作Excel一样;
Excel环境:目标电脑上有安装Excel 2003及其以上,
windows环境:win7及其以上;
浏览器环境:ie8及其以上;
其它:如属性vb(vba)、c#对office开发的更容易懂。
一下就 js操作Excel 和 vba操作Excel形成对比
如果导出的数据量很大很大的,我就没有测试了。

 <!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script>
        //模拟的json数据,二维结构
        var rjson = "";
        rjson = [
            ["序号", "用户编码", "资产名称", "型号", "资产类别名称", "使用部门", "使用人", "存放地点", "使用状态"],
            [1, "020150126", "电脑", "联想扬天t4900v", "台式机", "销售部", "张三", "2003室", "在用"],
            [2, "01103414", "办公椅", "黑皮", "椅凳类", "销售部", "张三", "2003室", "在用"],
            [3, "01104760", "地柜", "白色三抽屉", "文件柜", "销售部", "张三", "2003室", "在用"],
            [4, "2017000058", "笔记本电脑", "e31-8023", "便携式计算机", "销售部", "张三", "2003室", "在用"],
            [5, "2017000433", "书柜", "", "文件柜", "销售部", "张三", "2003室", "在用"],
            [6, "2017000406", "办公桌", "", "台、桌类", "销售部", "张三", "2003室", "在用"]
        ]


        var sh = eBook.ActiveSheet;//取活动工作表

        var row1 = rjson.length;//json数据的长度(行)
        var col1 = rjson[0].length;//json数据的子数据的长度(列)

        //创建ExcelApplication对象
        var excelApp = new ActiveXObject("Excel.Application");
        var eBook = excelApp.Workbooks.Add();//新建工作簿
        var rng = sh.Range("A1").Resize(row1, col1);//扩选上述填充的区域
        excelApp.Visible = true;//显示
       
        //Excel中的长度是从1开始的,所以i和j需要等于1 ,小于等于数组的长度
        for (var i = 1; i <= rjson.length; i++) {//循环(行)
            var rlist = rjson[i - 1];//json数据子数据
            for (var j = 1; j <= rlist.length; j++) {//循环(列)
                sh.Cells(i, j) = rlist[j - 1];//单元格赋值
            }
        }
        ///js语法
        
        //设置相关样式
        sh.Cells.RowHeight = 23;//设置所有行的高度
        rng.Borders.LineStyle = 1;//设置填充区域的边框样式 为1
        rng.HorizontalAlignment = -4108;//设置填充区域的水平居中
        rng.VerticalAlignment = -4108;//设置填充区域的垂直居中
        sh.Columns.AutoFit();//设置所有列自动列宽(自适应内容)
        sh.Range("A1").Offset(1, 0).Select();//A1单元格下移一个单元格,并选择
        excelApp.ActiveWindow.FreezePanes = true;//冻结窗口(实现固定表头)

        sh.Range("A1").Resize(1, col1).Interior.ColorIndex = 41; //A1单元格横向扩选,并设置底纹颜色(设置表头底纹颜色)
        sh.Range("A1").Resize(1, col1).Font.ColorIndex = 2; //A1单元格横向扩选,并设置字体颜色(设置表头字体颜色)

        
    </script>
  
</head>
<body>

</body>
</html>

其中关于Excel部分的操作,和vba语法基本相似,除了声明的部分
以下是vba操作Excel的代码

     	'vba语法参考
        Sub ToExcel()
        Dim excelApp As Object
        Set excelApp = CreateObject("Excel.Application") '创建Excel对象 适用不同版本的Excel 敲代码无提示
     	Set excelApp = New Application'创建Excel对象 适用指定版本的Excel 有敲代码提示
     	
        Dim eBook As Object
        Dim Rng As Object
        Dim sh As Worksheet
        Dim row1 As Integer
        Dim col1 As Integer
    
        row1 = 7
        col1 = 9
    
        Set eBook = excelApp.Workbooks.Add() '新建工作簿
        Set sh = eBook.ActiveSheet   '取活动工作表
        Set Rng = sh.Range("A1").Resize(row1, col1) '扩选上述填充的区域
    
        excelApp.Visible = True '显示Excel
    
        '[vba语法]设置相关样式
        sh.Cells.RowHeight = 23 '设置所有行的高度
        Rng.Borders.LineStyle = 1 '设置填充区域的边框样式 为1
        Rng.HorizontalAlignment = -4108 '设置填充区域的水平居中
        Rng.VerticalAlignment = -4108 '设置填充区域的垂直居中
        sh.Columns.AutoFit '设置所有列自动列宽(自适应内容)
        sh.Range("A1").Offset(1, 0).Select 'A1单元格下移一个单元格,并选择
        excelApp.ActiveWindow.FreezePanes = True '冻结窗口(实现固定表头)

        sh.Range("A1").Resize(1, col1).Interior.ColorIndex = 41 'A1单元格横向扩选,并设置底纹颜色值(设置表头底纹颜色:蓝色)
        sh.Range("A1").Resize(1, col1).Font.ColorIndex = 2 'A1单元格横向扩选,并设置字体颜色值(设置表头字体颜色:白色)
        End Sub

上述代码运行效果(如下图):
固定了首行,设置了底纹、行高、列宽、居中等样式
js操作Excel,js导出Excel,如同vba操作Excel(对ie8及其以上浏览器)

相关标签: js