Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Sammanfattning
Den här artikeln visar hur du skapar och ändrar en Microsoft Office Excel-arbetsbok från en HTML-sida.
Mer information
Den här artikeln illustrerar JScript-kod som automatiserar Excel. JScript har inga interna metoder för att skapa SAFEARRAYs. Om du anropar en funktion som kräver en SAFEARRAY när du använder automatisering kan du använda VBScript för att skapa SAFEARRAY. Koden nedan visar den här kombinationen av JScript- och VBScript-kod.
Skapa automationsexemplet
Starta Anteckningar.
Klistra in följande kod i Anteckningar.
<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>
Spara filen i valfri katalog med filnamnet Excelaut.htm.
Stäng Anteckningar och starta Internet Explorer.
I adressfältet skriver du C:*path*\excelaut.htm, där sökvägen är den katalog som du sparade filen i.
När Internet Explorer läser in filen visas en mening med en knapp. När du trycker på knappen startar Excel på klientens dator och fyller med data.
Referenser
I den här artikeln jämförs andra artiklar som beskriver samma process med olika språk. Om du vill ha mer information klickar du på följande artikelnummer för att visa artiklarna i Microsoft Knowledge Base:
219151 Så här automatiserar du Microsoft Excel från Visual Basic
179706 Så här använder du MFC för att automatisera Excel och skapa och formatera en ny arbetsbok
Om du vill ha mer information om hur du automatiserar Excel från en HTML-sida klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:
198703 Så här automatiserar du Excel från ett VBScript på klientsidan
Mer information om Office Automation finns på följande webbplats för support för Microsoft Office-utveckling: Microsoft Support