<
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
>
http://support.microsoft.com/kb/q234774/
http://www.google.cn/search?hl=zh-CN&q=msowc%E7%9A%84%E5%9B%BE%E8%A1%A8%E5%AF%BC%E5%85%A5%E5%88%B0excel%E4%B8%AD&btnG=Google+%E6%90%9C%E7%B4%A2&meta=
http://support.microsoft.com/?scid=ph;zh-tw;2512