本文详细介绍如何在 JavaScript 中使用 ActiveXObject 对象自动化操作 Excel。内容涵盖工作簿与工作表的创建、保存、打印及进程关闭;深入解析页面边距、页眉页脚设置;系统讲解单元格内容、边框、底色、字体样式及对齐方式的属性配置,并提供行、列及区域的选择与合并方法。
Excel 对象创建与基础操作
使用 ActiveXObject 创建 Excel 应用程序实例,代码为:var XLObj = new ActiveXObject("Excel.Application" );
通过 Application 对象的 Workbooks 集合调用 Add 方法新增一个工作簿,代码为:var xlBook = XLObj.Workbooks.Add; //新增工作簿
从工作簿中提取第一个工作表(Worksheets(1))并赋值给变量,代码为:var ExcelSheet = xlBook.Worksheets(1); //创建工作表
2. 保存表格
调用工作表的 SaveAs 方法,将当前工作表保存为指定路径的文件,代码为:ExcelSheet.SaveAs("C:\\TEST.XLS" );
3. 使 Excel 通过 Application 对象可见
设置 Excel 应用程序的 Visible 属性为 true,使 Excel 界面可见,代码为:ExcelSheet.Application.Visible = true;
4. 打印操作
调用工作簿的 PrintOut 方法执行打印操作,代码为:xlBook.PrintOut;
或者使用以下替代方案进行打印操作。
调用工作表的 PrintOut 方法执行打印,代码为:ExcelSheet.PrintOut;
5. 关闭工作簿
调用工作簿的 Close 方法并传入参数 savechanges=false 以关闭工作簿且不保存更改,代码为:xlBook.Close(savechanges=false);
或者使用以下替代方案关闭工作簿。
调用工作表的 Close 方法并传入参数 savechanges=false 以关闭工作表且不保存更改,代码为:ExcelSheet.Close(savechanges=false);
6. 结束 Excel 进程
调用 Excel 应用程序对象的 Quit 方法结束 Excel 进程,代码为:ExcelSheet.Application.Quit();
或者使用以下替代方案结束 Excel 进程。
直接调用 Excel 应用程序对象的 Quit 方法结束进程,代码为:XLObj.Quit();
将 Excel 应用程序对象引用置为 null 以释放资源,代码为: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. 对单元格进行操作,带*部分对于行、列、区域都有相应属性
单元格格式化:内容、边框与字体
通过 Cells(row,col).Value 属性设置指定行列单元格的内容,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Value = "内容";
注释说明:用于设置单元格内容。
通过 Cells(row,col).Borders.Weight 属性设置单元格边框粗细,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Borders.Weight = 1;
注释说明:用于设置单元格边框,具体参数见括号内说明。
通过 Cells(row,col).Interior.ColorIndex 属性设置单元格背景颜色索引,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Interior.ColorIndex = 1;
注释说明:用于设置单元格底色,1 代表黑色,2 代表白色,3 代表红色,4 代表绿色,5 代表蓝色,6 代表黄色,7 代表粉红色,8 代表天蓝色,9 代表酱土色,用户可尝试其他数值。
通过 Cells(row,col).Interior.Pattern 属性设置单元格背景图案样式,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Interior.Pattern = 1;
注释说明:用于设置单元格背景样式,1 代表无图案,2 代表细网格,3 代表粗网格,4 代表斑点,5 代表横线,6 代表竖线,用户可尝试其他数值。
通过 Cells(row,col).Font.ColorIndex 属性设置字体颜色索引,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Font.ColorIndex = 1;
注释说明:用于设置字体颜色,颜色索引值与底色设置相同。
通过 Cells(row,col).Font.Size 属性设置字体大小,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Font.Size = 10;
注释说明:用于将字体大小设置为 10 号。
通过 Cells(row,col).Font.Name 属性设置字体名称,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Font.Name = "黑体";
注释说明:用于将字体设置为黑体。
通过 Cells(row,col).Font.Italic 属性设置字体是否为斜体,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Font.Italic = true;
注释说明:用于将字体设置为斜体。
通过 Cells(row,col).Font.Bold 属性设置字体是否为粗体,代码为:ExcelSheet.ActiveSheet.Cells(row,col).Font.Bold = true;
注释说明:用于将字体设置为粗体。
调用 Cells(row,col).ClearContents 方法清除单元格内容,代码为:ExcelSheet.ActiveSheet.Cells(row,col).ClearContents;
注释说明:用于清除单元格内容。
通过 Cells(row,col).WrapText 属性设置单元格内容是否自动换行,代码为:ExcelSheet.ActiveSheet.Cells(row,col).WrapText=true;
注释说明:用于设置单元格自动换行。
通过 Cells(row,col).HorizontalAlignment 属性设置水平对齐方式,代码为:ExcelSheet.ActiveSheet.Cells(row,col).HorizontalAlignment = 3;
注释说明:水平对齐方式枚举值,1 代表常规,2 代表靠左,3 代表居中,4 代表靠右,5 代表填充,6 代表两端对齐,7 代表跨列居中,8 代表分散对齐。
通过 Cells(row,col).VerticalAlignment 属性设置垂直对齐方式,代码为: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 列。
以下操作针对单元格区域进行。
使用 Range 方法选择指定单元格区域,代码为:XLObj.Range(startcell+":"+endcell).Select;
注释说明:例如 Range("A2:H8") 表示选择从 A 列第 2 行到 H 列第 8 行的整个区域。
对当前选中区域执行操作,代码为:XLObj.Selection.
此处涉及合并单元格的操作。
设置指定区域的 MergeCells 属性为 true 以合并单元格,代码为:XLObj.Range(startcell+":"+endcell).MergeCells = true;
注释说明:例如 Range("A2:H8") 表示将 A 列第 2 行到 H 列第 8 行的区域合并为一个单元格。
另一种合并单元格的写法,代码为:XLObj.Range("A2",XLObj.Cells(8,8)).MergeCells = true;
以下部分用于设置行高与列宽。
设置指定列范围的 ColumnWidth 属性,代码为:ExcelSheet.ActiveSheet.Columns(startcol+":"+endcol).ColumnWidth = 22;
注释说明:用于设置从 startcol 到 endcol 列的宽度为 22。
设置指定行范围的 RowHeight 属性,代码为:ExcelSheet.ActiveSheet.Rows(startrow+":"+endrow).RowHeight = 22;
注释说明:用于设置从 startrow 到 endrow 行的高度为 22。