📄 javascript-tabletoexcel.js
字号:
/**
* 将HTML中的表格(Table)转换到Excel中的通用JavaScript函数
* 说明:通过启动用户本地的Excel,将网页上的指定HTML表格导出到Excel中。
* 能够根据HTML单元格的行列扩展信息自动进行Excel单元格的合并。*
*@param tableID 是要导出表格的 id
*@param rowStart 是跳过的行数
*@param colStart 是跳过的列数
*使用范例: ConvertToExcel("DataTb",0,0);
*/
function ConvertToExcel(tableID, rowStart ,colStart){
var xlApp,myWorkbook,myWordsheet,myHTMLTableCell,myExcelCell,myExcelCell2;
var myCellColSpan,myCellRowSpan;
try{
xlApp=new ActiveXObject("Excel.Application");
}
catch(e){
alert("无法启动Excel!\n\n"+e.message+"\n\n如果您确信您的电脑中已经安装了Excel,那么请调整IE的安全级别。");
return false;
}
xlApp.Visible=true;
myWorkbook=xlApp.Workbooks.Add();
xlApp.DisplayAlerts=false;
myWorkbook.Worksheets(3).Delete();
myWorkbook.Worksheets(2).Delete();
xlApp.DisplayAlerts=true;
myWorksheet=myWorkbook.ActiveSheet;
var obj = document.all.tags("table");
var RealColCount; //实际列数(通过HTML表格的第二行得到)
RealColCount=0;
for(x=0;x<obj.length;x++)
{
if(obj[x].id==tableID)
{
for (i=rowStart; i<obj[x].rows.length; i++)
{
for (j=colStart; j<obj[x].rows(i).cells.length; j++){
myExcelCell=myWorksheet.Cells(i+1-rowStart,j+1-colStart);
myHTMLTableCell=obj[x].rows(i).cells(j)
myExcelCell.Value = myHTMLTableCell.innerText;
myCellColSpan = myHTMLTableCell.colSpan;
myCellRowSpan = myHTMLTableCell.rowSpan;
//不是第一行,且有合并单元格的情况
if((i>rowStart)&&(myCellColSpan*myCellRowSpan>1)){
myExcelCell2=myWorksheet.Cells(i+1-rowStart+(myCellRowSpan-1),j+1-colStart+(myCellColSpan-1));
myWorksheet.Range(myExcelCell,myExcelCell2).Merge();
}
if(i==rowStart+1)
RealColCount=RealColCount+myCellColSpan;
}
}
//如果有标题栏(第一个有效行的单元格数量为1),则处理标题栏的合并情况
if((obj[x].rows(rowStart).cells.length==1)&&(RealColCount>0)){
myExcelCell=myWorksheet.Cells(1,1);
myExcelCell2=myWorksheet.Cells(1,RealColCount);
myWorksheet.Range(myExcelCell,myExcelCell2).Merge();
}
}
}
myWorksheet.Columns("A:IV").AutoFit;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -