⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javascript-tabletoexcel.js

📁 JavaScript传入TABLE的id
💻 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 + -