如何通过使用 JScript 从某个 HTML 网页自动化 Excel

生成自动化示例

1. 启动记事本。
2. 将以下代码粘贴到记事本。
<HTML>
            <BODY>
            Press the button to start Excel and display quarterly data.
            <SCRIPT LANGUAGE="VBScript">
            Function CreateNamesArray()
            ' Create an array to set multiple values at once.
            Dim saNames(5, 2)
            saNames(0, 0) = "John"
            saNames(0, 1) = "Smith"
            saNames(1, 0) = "Tom"
            saNames(1, 1) = "Brown"
            saNames(2, 0) = "Sue"
            saNames(2, 1) = "Thomas"
            saNames(3, 0) = "Jane"
            saNames(3, 1) = "Jones"
            saNames(4, 0) = "Adam"
            saNames(4, 1) = "Johnson"
            CreateNamesArray = saNames
            End Function
            </SCRIPT>
            <SCRIPT LANGUAGE="JScript">
            function AutomateExcel()
            {
            // Start Excel and get Application object.
            var oXL = new ActiveXObject("Excel.Application");
            oXL.Visible = true;
            // Get a new workbook.
            var oWB = oXL.Workbooks.Add();
            var oSheet = oWB.ActiveSheet;
            // Add table headers going cell by cell.
            oSheet.Cells(1, 1).Value = "First Name";
            oSheet.Cells(1, 2).Value = "Last Name";
            oSheet.Cells(1, 3).Value = "Full Name";
            oSheet.Cells(1, 4).Value = "Salary";
            // Format A1:D1 as bold, vertical alignment = center.
            oSheet.Range("A1", "D1").Font.Bold = true;
            oSheet.Range("A1", "D1").VerticalAlignment =  -4108; //xlVAlignCenter
            // Create an array to set multiple values at once.
            // Fill A2:B6 with an array of values (from VBScript).
            oSheet.Range("A2", "B6").Value = CreateNamesArray();
            // Fill C2:C6 with a relative formula (=A2 & " " & B2).
            var oRng = oSheet.Range("C2", "C6");
            oRng.Formula = "=A2 & \" \" & B2";
            // Fill D2:D6 with a formula(=RAND()*100000) and apply format.
            oRng = oSheet.Range("D2", "D6");
            oRng.Formula = "=RAND()*100000";
            oRng.NumberFormat = "$0.00";
            // AutoFit columns A:D.
            oRng = oSheet.Range("A1", "D1");
            oRng.EntireColumn.AutoFit();
            // Manipulate a variable number of columns for Quarterly Sales Data.
            DispalyQuarterlySales(oSheet);
            // Make sure Excel is visible and give the user control
            // of Excel's lifetime.
            oXL.Visible = true;
            oXL.UserControl = true;
            }
            function DispalyQuarterlySales(oWS)
            {
            var iNumQtrs, sMsg, iRet;
            // Number of quarters to display data for.
            iNumQtrs = 4;
            // Starting at E1, fill headers for the number of columns selected.
            var oResizeRange = oWS.Range("E1", "E1").Resize(1,iNumQtrs);
            oResizeRange.Formula = "=\"Q\" & COLUMN()-4 & CHAR(10) & \"Sales\"";
            // Change the Orientation and WrapText properties for the headers.
            oResizeRange.Orientation = 38;
            oResizeRange.WrapText = true;
            // Fill the interior color of the headers.
            oResizeRange.Interior.ColorIndex = 36;
            // Fill the columns with a formula and apply a number format.
            oResizeRange = oWS.Range("E2", "E6").Resize(5,iNumQtrs);
            oResizeRange.Formula = "=RAND()*100";
            oResizeRange.NumberFormat = "$0.00";
            // Apply borders to the Sales data and headers.
            oResizeRange = oWS.Range("E1", "E6").Resize(6,iNumQtrs);
            oResizeRange.Borders.Weight = 2;  // xlThin
            // Add a Totals formula for the sales data and apply a border.
            oResizeRange = oWS.Range("E8", "E8").Resize(1,iNumQtrs);
            oResizeRange.Formula = "=SUM(E2:E6)";
            // 9 = xlEdgeBottom
            oResizeRange.Borders(9).LineStyle = -4119; //xlDouble
            oResizeRange.Borders(9).Weight = 4; //xlThick
            // Add a Chart for the selected data.
            oResizeRange = oWS.Range("E2:E6").Resize(5,iNumQtrs);
            var oChart = oWS.Parent.Charts.Add();
            oChart.ChartWizard(oResizeRange, -4100, null, 2);  // -4100 = xl3dColumn
            oChart.SeriesCollection(1).XValues = oWS.Range("A2", "A6");
            for (iRet = 1; iRet <= iNumQtrs; iRet++) {
            oChart.SeriesCollection(iRet).Name = "=\"Q" + iRet + "\"";
            }
            oChart.Location(2, oWS.Name); // 2 = xlLocationAsObject
            // Move the chart so as not to cover your data.
            oWS.Shapes("Chart 1").Top = oWS.Rows(10).Top;
            oWS.Shapes("Chart 1").Left = oWS.Columns(2).Left;
            }
            </SCRIPT>
            <P><INPUT id=button1 type=button value="Start Excel"
            onclick="AutomateExcel"></P>
            </BODY>
            </HTML>
            
3. 将文件保存到用文件名 Excelaut.htm 您选择的目录。
4. 关闭记事本并启动 InternetExplorer。
5. 在 地址 栏, 键入 C:\ 路径 \excelaut.htm 其中 路径 是目录保存该文件中。
6. 当 Internet Explorer 加载文件, 您会看到与按钮一个句子。 当您按按钮, Excel 将在客户端计算机上启动并填入数据。
posted @ 2007-06-03 22:28  过河卒A  阅读(567)  评论(0编辑  收藏  举报