/* * 默认转换实现函数,如果需要其他功能,需自行扩展 * 参数: * tableID : HTML中Table对象id属性值 * 详细用法参见以下 TableToExcel 对象定义 */ function saveAsExcel(tableID) { var tb = new TableToExcel(tableID); tb.setFontStyle("Courier New"); tb.setFontSize(10); tb.setTableBorder(2); tb.setColumnWidth(7); tb.isLineWrap(true); tb.getExcelFile(); } /* * 功能:HTML中Table对象转换为Excel通用对象. * 参数:tableID HTML中Table对象的ID属性值 * 说明: * 能适应复杂的HTML中Table对象的自动转换,能够自动根据行列扩展信息 * 合并Excel中的单元格,客户端需要安装有Excel * 详细的属性、方法引用说明参见:Excel的Microsoft Excel Visual Basic参考 * 示范: * var tb = new TableToExcel('demoTable'); * tb.setFontStyle("Courier New"); * tb.setFontSize(10); //推荐取值10 * tb.setFontColor(6); //一般情况不用设置 * tb.setBackGround(4); //一般情况不用设置 * tb.setTableBorder(2); //推荐取值2 * tb.setColumnWidth(10); //推荐取值10 * tb.isLineWrap(false); * tb.isAutoFit(true); * * tb.getExcelFile(); * 如果设置了单元格自适应,则设置单元格宽度无效 * 版本:1.0 * BUG提交:QQ:18234348 或者 http://jeva.bokee.com */ function TableToExcel(tableID) { this.tableBorder = -1; //边框类型,-1没有边框 可取1/2/3/4 this.backGround = 0; //背景颜色:白色 可取调色板中的颜色编号 1/2/3/4.... this.fontColor = 1; //字体颜色:黑色 this.fontSize = 10; //字体大小 this.fontStyle = "宋体"; //字体类型 this.rowHeight = -1; //行高 this.columnWidth = -1; //列宽 this.lineWrap = true; //是否自动换行 this.textAlign = -4108; //内容对齐方式 默认为居中 this.autoFit = false; //是否自适应宽度 this.tableID = tableID; } TableToExcel.prototype.setTableBorder = function (excelBorder) { this.tableBorder = excelBorder; }; TableToExcel.prototype.setBackGround = function (excelColor) { this.backGround = excelColor; }; TableToExcel.prototype.setFontColor = function (excelColor) { this.fontColor = excelColor; }; TableToExcel.prototype.setFontSize = function (excelFontSize) { this.fontSize = excelFontSize; }; TableToExcel.prototype.setFontStyle = function (excelFont) { this.fontStyle = excelFont; }; TableToExcel.prototype.setRowHeight = function (excelRowHeight) { this.rowHeight = excelRowHeight; }; TableToExcel.prototype.setColumnWidth = function (excelColumnWidth) { this.columnWidth = excelColumnWidth; }; TableToExcel.prototype.isLineWrap = function (lineWrap) { if (lineWrap == false || lineWrap == true) { this.lineWrap = lineWrap; } }; TableToExcel.prototype.setTextAlign = function (textAlign) { this.textAlign = textAlign; }; TableToExcel.prototype.isAutoFit = function (autoFit) { if (autoFit == true || autoFit == false) this.autoFit = autoFit; } //文件转换主函数 TableToExcel.prototype.getExcelFile = function () { var jXls, myWorkbook, myWorksheet, myHTMLTableCell, myExcelCell, myExcelCell2; var myCellColSpan, myCellRowSpan; try { jXls = new ActiveXObject('Excel.Application'); } catch (e) { alert("无法启动Excel!\n\n" + e.message + "\n\n如果您确信您的电脑中已经安装了Excel," + "那么请调整IE的安全级别。\n\n具体操作:\n\n" + "工具 → Internet选项 → 安全 → 自定义级别 → 对没有标记为安全的ActiveX进行初始化和脚本运行 → 启用"); return false; } jXls.Visible = true; myWorkbook = jXls.Workbooks.Add(); jXls.DisplayAlerts = false; myWorkbook.Worksheets(3).Delete(); myWorkbook.Worksheets(2).Delete(); jXls.DisplayAlerts = true; myWorksheet = myWorkbook.ActiveSheet; var readRow = 0, readCol = 0; var totalRow = 0, totalCol = 0; var tabNum = 0; //设置行高、列宽 if (this.columnWidth != -1) myWorksheet.Columns.ColumnWidth = this.columnWidth; else myWorksheet.Columns.ColumnWidth = 7; if (this.rowHeight != -1) myWorksheet.Rows.RowHeight = this.rowHeight; //搜索需要转换的Table对象,获取对应行、列数 var obj = document.all.tags("table"); for (x = 0; x < obj.length; x++) { if (obj[x].id == this.tableID) { tabNum = x; totalRow = obj[x].rows.length; for (i = 0; i < obj[x].rows[0].cells.length; i++) { myHTMLTableCell = obj[x].rows(0).cells(i); myCellColSpan = myHTMLTableCell.colSpan; totalCol = totalCol + myCellColSpan; } } } //开始构件模拟表格 var excelTable = new Array(); for (i = 0; i <= totalRow; i++) { excelTable[i] = new Array(); for (t = 0; t <= totalCol; t++) { excelTable[i][t] = false; } } //开始转换表格 for (z = 0; z < obj[tabNum].rows.length; z++) { readRow = z + 1; readCol = 0; for (c = 0; c < obj[tabNum].rows(z).cells.length; c++) { myHTMLTableCell = obj[tabNum].rows(z).cells(c); myCellColSpan = myHTMLTableCell.colSpan; myCellRowSpan = myHTMLTableCell.rowSpan; for (y = 1; y <= totalCol; y++) { if (excelTable[readRow][y] == false) { readCol = y; break; } } if (myCellColSpan * myCellRowSpan > 1) { myExcelCell = myWorksheet.Cells(readRow, readCol); myExcelCell2 = myWorksheet.Cells(readRow + myCellRowSpan - 1, readCol + myCellColSpan - 1); myWorksheet.Range(myExcelCell, myExcelCell2).Merge(); myExcelCell.HorizontalAlignment = this.textAlign; myExcelCell.Font.Size = this.fontSize; myExcelCell.Font.Name = this.fontStyle; myExcelCell.wrapText = this.lineWrap; myExcelCell.Interior.ColorIndex = this.backGround; myExcelCell.Font.ColorIndex = this.fontColor; if (this.tableBorder != -1) { myWorksheet.Range(myExcelCell, myExcelCell2).Borders(1).Weight = this.tableBorder; myWorksheet.Range(myExcelCell, myExcelCell2).Borders(2).Weight = this.tableBorder; myWorksheet.Range(myExcelCell, myExcelCell2).Borders(3).Weight = this.tableBorder; myWorksheet.Range(myExcelCell, myExcelCell2).Borders(4).Weight = this.tableBorder; } myExcelCell.Value = myHTMLTableCell.innerText; for (row = readRow; row <= myCellRowSpan + readRow - 1; row++) { for (col = readCol; col <= myCellColSpan + readCol - 1; col++) { excelTable[row][col] = true; } } readCol = readCol + myCellColSpan; } else { myExcelCell = myWorksheet.Cells(readRow, readCol); myExcelCell.Value = myHTMLTableCell.innerText; myExcelCell.HorizontalAlignment = this.textAlign; myExcelCell.Font.Size = this.fontSize; myExcelCell.Font.Name = this.fontStyle; myExcelCell.wrapText = this.lineWrap; myExcelCell.Interior.ColorIndex = this.backGround; myExcelCell.Font.ColorIndex = this.fontColor; if (this.tableBorder != -1) { myExcelCell.Borders(1).Weight = this.tableBorder; myExcelCell.Borders(2).Weight = this.tableBorder; myExcelCell.Borders(3).Weight = this.tableBorder; myExcelCell.Borders(4).Weight = this.tableBorder; } excelTable[readRow][readCol] = true; readCol = readCol + 1; } } } if (this.autoFit == true) myWorksheet.Columns.AutoFit; jXls.UserControl = true; jXls = null; myWorkbook = null; myWorksheet = null; };
相关推荐
JavaScript 操作 Excel JavaScript 操作 Excel 是指使用 JavaScript 语言来操作和控制 Excel 应用程序。通过使用 ActiveXObject 对象,可以在客户端操作 Excel 文件,而不需要访问服务器端。 在使用 JavaScript ...
在这个“JavaScript操作Excel_Demo.zip”压缩包中,包含了一个名为“xlsx.full.min.js”的插件,它是XLSX库的一个版本,用于读取和写入CSV、XLS、XLSX等多种格式的电子表格文件。这个库基于JSON,使得在JavaScript...
【JavaScript操作Excel生成报表】 在IT领域,有时候我们需要在网页端生成报表并导出为Excel格式,以便用户能够方便地下载和分析数据。JavaScript是一种常用的客户端脚本语言,虽然它通常用于网页交互,但通过特定的...
实现javascript操作Excel进行报表输出的javabean接口类,通过调用bean的方法快速生成客户端的javascript来操作Excel,实现读取Excel模板,添加记录,打印设置,打印预览,自动保存文件等功能,本人多年的web开发经验...
虽然题目和描述中没有具体提及Excel文档的操作,但我们可以基于Word文档操作的基础之上,介绍如何使用JavaScript操作Excel文档。 ##### 1. 创建Excel对象 创建Excel对象的方式与创建Word对象类似,都是通过`...
### JavaScript 操作 Excel 的知识点详解 #### 一、概述 ...综上所述,通过JavaScript操作Excel是一个实用的功能,但需要注意兼容性和安全性问题。开发者应该根据实际情况选择合适的技术栈来实现这一需求。
### JavaScript操作Excel知识点详解 #### 一、简介 在日常工作中,经常需要处理Excel文档,尤其是在Web应用中,用户可能需要导出数据到Excel文件。虽然有多种方式可以实现这一功能,但使用JavaScript来直接操作...
在介绍JavaScript操作Excel的常用方法之前,首先要明确一点,这些操作通常是借助COM自动化技术(如ActiveX对象)来实现的,因为这涉及到直接与Excel应用程序的接口交互。然而,需要注意的是,这种做法主要适用于...
虽然题目中没有具体提到如何使用JavaScript操作Excel文档,但在实际应用中,通常可以通过Microsoft Office提供的OLE自动化或者第三方库如`SheetJS`来实现。这里提供一个简单的示例,展示如何使用`SheetJS`库将JSON...
- **js-xlsx**:这是xlsx库的旧名,功能与xlsx相同,提供读取、写入和操作Excel文件的能力。 - ** SheetJS**:xlsx库的GitHub仓库名为SheetJS,它提供了多种语言的接口,包括JavaScript。 4. **读取流程** - ...
在IT行业中,JavaScript(简称JS)是一种广泛使用的前端编程语言,它主要负责...了解这些知识点后,开发人员可以根据实际需求,结合提供的HTML文件学习和实践JavaScript操作Excel的技巧,从而实现高效的数据导出功能。
本文将深入探讨如何使用JavaScript和VBA(Visual Basic for Applications)来实现Excel的批量打印功能,从而避免手动逐个打印工作表的繁琐操作。 JavaScript是一种广泛使用的脚本语言,通常应用于网页前端交互,但...
对于Microsoft Edge和IE浏览器,可以利用`OfficeJS`库直接操作Excel在线版。这需要用户有Office 365订阅,并在支持的浏览器中运行。 ```javascript // 引入OfficeJS库 import * as Office from 'office-js'; ...
// 使用JavaScript操作Excel function createExcel() { var excel = new ActiveXObject("Excel.Application"); var workbook = excel.Workbooks.Add(); var worksheet = workbook.Worksheets[1]; // 填充数据 ...
知识点2: 使用JavaScript操作Excel 在获取了Excel应用程序对象后,我们可以使用JavaScript来操作Excel。例如,在本例中,我们使用了`oXL.Workbooks.Add()`来添加一个新的工作簿,`oWB.ActiveSheet`来获取活动工作表...
JavaScript仿Excel表格演示提供了一种高效且灵活的方法,让用户在浏览器环境中享受到类似于Microsoft Excel的操作体验。这种技术主要依赖于HTML5的新特性,如数据绑定、事件处理以及Web存储等,以实现动态表格的功能...