javascript将网页表格导出Word和Excel

原创 2007年09月27日 15:35:00

 javascript将网页表格导出Word

<script>
 function AllAreaWord()
{
  if(document.all("tab").rows.length==0)
  {
   alert("没有内容可导!");
   return;
  }
  try{
   var oWD = new ActiveXObject("Word.Application");
  }catch(e)
  {
   alert("无法调用Office对象,请确保您的机器已安装了Office并已将本系统的站点名加入到IE的信任站点列表中!");
   return;
  }
var oDC = oWD.Documents.Add("",0,1);
var oRange =oDC.Range(0,1);
var sel = document.body.createTextRange();
sel.moveToElementText(tab); //tab 为导出数据所在的表格ID
sel.select();
sel.execCommand("Copy");
oRange.Paste();
oWD.Application.Visible = true;
}
</script>

<table id="tab" align="center" width="300" border="1" bordercolor="#2baeff" cellpadding="0" cellspacing="0" bgcolor="lightblue">
  <Tr>
    <Td>1</td>
    <Td>2</td>
    <Td>3</td>
  </tr>
  <Tr>
    <Td>4</td>
    <Td>5</td>
    <Td>6</td>
  </tr>
  <Tr>
    <Td>7</td>
    <Td>8</td>
    <Td>9</td>
  </tr>
</table>
<input type=button name='button_export' title='导出到word'  onclick=AllAreaWord() value=下载到word>



 javascript将网页表格导出Excel

 

<SCRIPT LANGUAGE="javascript">

<!--

function AutomateExcel()

{

var elTable = document.getElementById("outtable"); //outtable 为导出数据所在的表格ID;

var oRangeRef = document.body.createTextRange();

oRangeRef.moveToElementText( elTable );

oRangeRef.execCommand( "Copy" );

try{
var appExcel = new ActiveXObject( "Excel.Application" );
}catch(e)
{
  alert("无法调用Office对象,请确保您的机器已安装了Office并已将本系统的站点名加入到IE的信任站点列表中!");
  return;
}

appExcel.Visible = true;

appExcel.Workbooks.Add().Worksheets.Item(1).Paste();

appExcel = null;

}

//-->

</SCRIPT>

<input type="button" name="out_excel" onClick="AutomateExcel();" value="导出到excel" class="notPrint">
<table border="1" cellpadding="0" cellspacing="0" id=outtable>
  <tr height="28">
    <td width="27" height="86" rowspan="4" bgcolor="#ffffcc">序号</td>
    <td width="111" rowspan="4" bgcolor="#ffffcc"><div align="center">服务网点</div></td>
    <td width="402" colspan="7" bgcolor="#ffffcc"><div align="center">用户满意度</div></td>
  </tr>
  <tr height="19">
    <td width="100" height="39" colspan="3" rowspan="2" bgcolor="#ffffcc"><div align="center">样本数量</div></td>
    <td width="218" colspan="3" rowspan="2" bgcolor="#ffffcc">对该服务网点实施本次活动的整体评价,满分10分(平均分数)</td>
    <td width="84" rowspan="3" bgcolor="#ffffcc"><div align="center">季度平均分</div></td>
  </tr>
  <tr height="20"> </tr>
  <tr height="19">
    <td width="29" height="19" bgcolor="#ffffcc"><div align="center">4月</div></td>
    <td width="29" bgcolor="#ffffcc"><div align="center">5月</div></td>
    <td width="42" bgcolor="#ffffcc"><div align="center">合计</div></td>
    <td width="68" bgcolor="#ffffcc"><div align="center">4月</div></td>
    <td width="68" bgcolor="#ffffcc"><div align="center">5月</div></td>
    <td width="82" bgcolor="#ffffcc"><div align="center">合计</div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td bgcolor="#ffffcc">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td bgcolor="#ffffcc">&nbsp;</td>
    <td bgcolor="#ffffcc">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td bgcolor="#ffffcc">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td bgcolor="#ffffcc">&nbsp;</td>
    <td bgcolor="#ffffcc">&nbsp;</td>
  </tr>
</table>


 

在导出时弹出如下对话框的解决办法:

1、首先将网站的地址加入受信任的站点,如下图:

2、在"工具-internet选项-安全-受信任的站点"中点“自定义级别”,在“对没有标注安全的Acitvex控件进行初始化和脚本运行”中点选“禁止”或“启用”,就ok了。

 

如何取office版本号、安装路径和使用者

alert("您的" + wrd.Application.Caption + "安装路径为:/n"  + wrd.Application.Path + "/n版本号是:" + wrd.Application.version

+ "/n注册使//用者是:" + wrd.Application.UserName)


 

由于项目中又提出了新需求,需要导入Wodr时文档里能自动一个表格占一页,以方便打印,于是又做了修改,支持了自动分页。并且发现了一个老是弹出语法拼写检查错误太多的Bug,进行了修复。Excel增加了一个手动设置列的宽度。二次修正并添加了新功能的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function AutomateWordAutoPaging(prefixion,Count)
{
var oWD = new ActiveXObject("Word.Application");
var oDC = oWD.Documents.Add("",0,1);
oDC.ShowGrammaticalErrors = false; //屏蔽语法检查
oDC.ShowSpellingErrors = false;  //屏蔽语法检查
var oRange =oDC.Range(0,1);

for (i=0;i<Count;i++)
{
var sel = document.body.createTextRange();
var TableName = prefixion+i
var Table = document.getElementById(TableName)
sel.moveToElementText(Table);
sel.select();
sel.execCommand("Copy");
oWD.Selection.Paste();
//oWD.Selection.TypeText("aaa")
oWD.Selection.InsertBreak(7) //插入分页符
}

oWD.ActiveDocument.ActiveWindow.View.Type=3 //设置浏览模式
oWD.Application.Visible = true;
}
function AutomateExcel(prefixion)

{

var elTable = document.getElementById("AutomateExcel");

var oRangeRef = document.body.createTextRange();

oRangeRef.moveToElementText(elTable);

oRangeRef.execCommand("Copy");

try{
var appExcel = new ActiveXObject( "Excel.Application" );
}catch(e)
{
  alert("无法调用Office对象,请确保您的机器已安装了Office并已将本系统的站点名加入到IE的信任站点列表中!");
  return;
}

appExcel.Visible = true;

appExcel.Workbooks.Add().Worksheets.Item(1).Paste();
appExcel.Workbooks(1).Worksheets.Item(1).Columns("A:A").ColumnWidth = 100;
//appExcel.Workbooks(1).Worksheets.Item(1).Columns("B:B").ColumnWidth = 21;

appExcel = null;

}
</script>
</head>

<body>
<input name="导入" type="button" id="导入" value="导出到Word自动分页" onclick="AutomateWordAutoPaging('Table',5)" />
<input name="button" type="button" class="INPUT-BUTTON-Excel" onclick="AutomateExcel('Table')" value="导出到Excel控制列宽" />
<div id="AutomateExcel">
<TABLE class=tabp id="Table0" cellSpacing=0 cellPadding=2 width="100%"
     align=center border=1>
      <TR>
     <TD width="100%" align="center">标题0</TD>
     </TR>
      <TR>
        <TD align="center">内容0</TD>
  </TR>
</TABLE>
     <BR>
<TABLE class=tabp id="Table1" cellSpacing=0 cellPadding=2 width="100%"
     align=center border=1>
      <TR>
     <TD width="100%" align="center">标题1</TD>
     </TR>
      <TR>
        <TD align="center">内容1</TD>
  </TR>
</TABLE>
     <BR>
<TABLE class=tabp id="Table2" cellSpacing=0 cellPadding=2 width="100%"
     align=center border=1>
      <TR>
     <TD width="100%" align="center">标题2</TD>
     </TR>
      <TR>
        <TD align="center">内容2</TD>
  </TR>
</TABLE>
     <BR>
<TABLE class=tabp id="Table3" cellSpacing=0 cellPadding=2 width="100%"
     align=center border=1>
      <TR>
     <TD width="100%" align="center">标题3</TD>
     </TR>
      <TR>
        <TD align="center">内容3</TD>
  </TR>
</TABLE>
     <BR>
<TABLE class=tabp id="Table4" cellSpacing=0 cellPadding=2 width="100%"
     align=center border=1>
      <TR>
     <TD width="100%" align="center">标题4</TD>
     </TR>
      <TR>
        <TD align="center">内容4</TD>
  </TR>
</TABLE>
     <BR>
     </div>
</body>
</html>

web项目java后台将html表格导出为word表格文件

web环境;spring+jQuery+hibernate  前端jsp文件核心代码:                    下载word版 $("#dwywjs").click(...
  • zixingchedechegulu
  • zixingchedechegulu
  • 2017年07月06日 15:54
  • 782

table导出为word或excel

           //导出到excel           function AutomateExcel(){                 var elTable = document.ge...
  • muzai
  • muzai
  • 2010年11月10日 16:18
  • 1298

html中table导出成excel、word等

  • 2017年07月11日 09:55
  • 7KB
  • 下载

将页面导出成word

public void ExpertControl(System.Web.UI.Control source, string doctype, string docName) { ...
  • hutao1101175783
  • hutao1101175783
  • 2016年06月29日 16:31
  • 463

网页内容导出word文档jquery插件

插件描述:jquery.wordexport.js是一款将网页制定标签容器中的文本内容生成并导出word文档插件,借助该jQuery插件,可以将网页内容导出Word文档。 先需要引入jquery,然后...
  • zjmjiang
  • zjmjiang
  • 2017年05月15日 15:11
  • 2329

jsp做页面导出成word文件和excel文件

    做这个还是花了不少时间搜查资料,结果是网上没有一个是比较完整的应用举例。唉,现在国内牛人都习惯发布技术文章时遮遮掩掩,只截取部分代码都关键说明,这样的文章只能供自己完全明白,其他大概明白,新手...
  • achan2090
  • achan2090
  • 2007年06月06日 11:57
  • 13693

IE浏览器下,将页面导出为word

IE由于其特殊性,很多将页面导出为静态文件的方法对其并不适用,特别是当页面内容较多且复杂(如包含图片等)的时候,大多数情况下只能利用IE的原生态js代码进行导出,其具体内容如下: 页面上的代码为: ...
  • death05
  • death05
  • 2017年01月17日 16:26
  • 614

JS导出Word

最近还在做将网页内容导出Word的功能,现将遇到的问题记录一下。 1、JS导出Word 方式一:使用Word.Application控件 var wordObj = new ActiveXObject...
  • fengshuiyue
  • fengshuiyue
  • 2017年02月27日 23:39
  • 6360

小技巧之js导出word

js导出word方法,简单,但是功能上要弱一些   function copyTable(){  //tabel、div ID, 会将table内所有的内//容复制到word  var elTab...
  • fly_yuge
  • fly_yuge
  • 2015年12月22日 17:39
  • 2158

关于js操作word和excel,js导出word和excel的若干方法汇总[转]

    //定义全局变量,用于清理工作   var word;   var doc;   function editFile(){   //调用word控件   word= n...
  • chxizi
  • chxizi
  • 2010年10月10日 16:40
  • 1446
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript将网页表格导出Word和Excel
举报原因:
原因补充:

(最多只允许输入30个字)