JS操作Word和Excel的方法

时间:2021-03-11 06:23:21

1.保存html页面到word

***************************************************************************************

<HTML>
<HEAD>
<title>
</title>
</HEAD>
<body>
<form id="form">
<table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0" >
<TR style="text-align : center;">
 <TD>单元格1</TD>
 <TD>单元格2</TD>
 <TD>单元格3</TD>
 <TD>单元格4</TD>
</TR>
<TR>
 <TD colSpan=4 style="text-align : center;"><font color="red" face="Verdana">单元格合并</FONT></TD>
</TR>
</TABLE>
<BR>
<table id = "Test" width="100%">
<tr>
<td><font color="red">test</FONT></td>
</tr>
</table>
</form>
<input type="button" onclick="javascript:MakeWord();" value="导出页面到Word">
<SCRIPT LANGUAGE="javascript">
 function MakeWord()
 {
  var word = new ActiveXObject("Word.Application");
 // var doc = word .documents.open("c:\test.doc");     //此处为打开已有的模版
var doc = word .Documents.Add("",0,1);//不打开模版直接加入内容
 var   Range=doc.Range(); 

  var sel = document.body.createTextRange();
  sel.moveToElementText(form);//此处form是页面form的id
  sel.select();
  sel.execCommand("Copy");
  Range.Paste();
  word .Application.Visible = true;
  alert("s");
  word.Application.Selection.InlineShapes.AddPicture("c:\\m20.gif");
  alert("n");
  doc .saveAs("c:\\ba.doc");     //存放到指定的位置注意路径一定要是“\\”不然会报错
 }
</SCRIPT>
</body>
</html>
***************************************************************************************************

2.用JS生成WORD

***************************************************************************************************

<script>
  function wordcontorl(){
    alert("1111")
  var WordApp=new ActiveXObject("Word.Application");
 
var wdCharacter=1
var wdOrientLandscape = 1
WordApp.Application.Visible=true;
var myDoc=WordApp.Documents.Add();

    WordApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
   
    WordApp. Selection.ParagraphFormat.Alignment=1  //1居中对齐,0为居右
WordApp. Selection.Font.Bold=true
    WordApp. Selection.Font.Size=20
 
    WordApp. Selection.TypeText("我的标题");
    WordApp. Selection.MoveRight(wdCharacter);    //光标右移字符
    WordApp.Selection.TypeParagraph()         //插入段落
    WordApp. Selection.Font.Size=12       
    WordApp. Selection.TypeText("副标题");        //分行插入日期 
    WordApp.Selection.TypeParagraph()         //插入段落
 
 
 
    var myTable=myDoc.Tables.Add (WordApp.Selection.Range, 8,7)  //8行7列的表格
    //myTable.Style="网格型"
    var aa = "我的列标题"
 
    var TableRange;  //以下为给表格中的单元格赋值
    for (i= 0;i<7;i++)
    {
    with (myTable.Cell(1,i+1).Range)
    { 
    font.Size = 12;
InsertAfter(aa);
ColumnWidth =4
}
}

for (i =0;i<7;i++)
{
for (n =0;n<7 ;n++)
{
     
    with (myTable.Cell(i+2,n+1).Range)
    {font.Size = 12;
InsertAfter("bbbb");
}
}
}
    row_count = 0;
    col_count = 0
myDoc.Protect(1)
}
wordcontorl()
</script>
***************************************************************************************************
3.遍历导出到word
***************************************************************************************************
1、遍历导出每个文本框内的内容。
<script language="javascript">
function OpenWord(){//导出word
var txt="txt";
for(i=0;i<table1.rows.length;i++)//遍历导出图表和文字
{
txt="txt"+jilu[i];
myRange =mydoc.Range(myRange.End-1,myRange.End);//设定起始点
var sel=Layer1.document.body.createTextRange();
//sel.moveToElementText(table1);
sel.moveToElementText(document.all[txt]);
sel.select();
Layer1.document.execCommand('Copy');
sel.moveEnd('character');
myRange.Paste();
myRange =mydoc.Range(myRange.End-1,myRange.End);
myRange.InsertAfter("\n");
ExcelSheet.ActiveWindow.View.TableGridlines  =  false;//隐藏虚框
}
}
</script>
2、拷贝table1内的内容到word
<script language="javascript">
function OpenWord(){//导出word
Layer1.style.border=0;
ExcelSheet = new ActiveXObject('Word.Application');
ExcelSheet.Application.Visible = true;
var mydoc=ExcelSheet.Documents.Add('',0,0);
myRange =mydoc.Range(0,1);
myRange =mydoc.Range(myRange.End-1,myRange.End);//设定起始点
var sel=Layer1.document.body.createTextRange();
sel.moveToElementText(table1);
sel.select();
Layer1.document.execCommand('Copy');
sel.moveEnd('character');
myRange.Paste();

myRange =mydoc.Range(myRange.End-1,myRange.End);
myRange.InsertAfter("\n");
ExcelSheet.ActiveWindow.View.TableGridlines  =  false;
}
</script>
**************************************************************************************************
4.操作excel
**************************************************************************************************
<%@ page c %>
<h1>content</h1>
<html>
  <head>
    <script language="javascript" type="text/javascript">
      function MakeExcel() {
        var i, j, n;
        try {
          var xls = new ActiveXObject("Excel.Application");
        }
        catch(e) {
          alert( "要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。请点击【帮助】了解浏览器设置方法!");
            return "";
        }
        xls.visible =true; // 设置excel为可见
        var xlBook = xls.Workbooks.Add;
        var xlsheet = xlBook.Worksheets(1);
        <!--合并-->
        xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).mergecells=true;
        xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).value="发卡记录";
        xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,3)).Interior.ColorIndex=5; // 设置底色为蓝色
        // xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Font.ColorIndex=4; // 设置字体色
        // xlsheet.Rows(1). Interior .ColorIndex = 5 ;//设置底色为蓝色  设置背景色 Rows(1).Font.ColorIndex=4
        <!--设置行高-->
        xlsheet.Rows(1).RowHeight = 25;
        <!--设置字体 ws.Range(ws.Cells(i0+1,j0), ws.Cells(i0+1,j1)).Font.Size = 13 -->
        xlsheet.Rows(1).Font.Size=14;
        <!--设置字体 设置选定区的字体  xlsheet.Range(xlsheet.Cells(i0,j0), ws.Cells(i0,j0)).Font.Name = "黑体" -->
        xlsheet.Rows(1).Font.Name="黑体";
        <!--设置列宽 xlsheet.Columns(2)=14;-->
        xlsheet.Columns("A:D").ColumnWidth =18;
        <!--设置显示字符而不是数字-->
        xlsheet.Columns(2).NumberFormatLocal="@";
        xlsheet.Columns(7).NumberFormatLocal="@";
        //设置单元格内容自动换行 range.WrapText  =  true  ;
        //设置单元格内容水平对齐方式 range.HorizontalAlignment  =  Excel.XlHAlign.xlHAlignCenter;//设置单元格内容竖直堆砌方式
        //range.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter
        //range.WrapText  =  true;  xlsheet.Rows(3).WrapText=true  自动换行
        //设置标题栏
        xlsheet.Cells(2, 1).Value = "卡号";
        xlsheet.Cells(2, 2).Value = "密码";
        xlsheet.Cells(2, 3).Value = "计费方式";
        xlsheet.Cells(2, 4).Value = "有效天数";
        xlsheet.Cells(2, 5).Value = "金额";
        xlsheet.Cells(2, 6).Value = "所属服务项目";
        xlsheet.Cells(2, 7).Value = "发卡时间";
        var oTable = document.all['fors:data'];
        var rowNum = oTable.rows.length;
        for(i = 2; i <= rowNum; i++) {
          for (j = 1; j <= 7; j++) {
            //html table类容写到excel
            xlsheet.Cells(i + 1, j).Value = oTable.rows(i - 1).cells(j - 1).innerHTML;
          }
        }
        <!--  xlsheet.Range(xls.Cells(i+4,2),xls.Cells(rowNum,4)).Merge; -->
        // xlsheet.Range(xlsheet.Cells(i, 4), xlsheet.Cells(i-1, 6)).BorderAround , 4
        // for(mn=1,mn<=6;mn++) .    xlsheet.Range(xlsheet.Cells(1, mn), xlsheet.Cells(i1, j)).Columns.AutoFit;
        xlsheet.Columns.AutoFit;
        xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum+1,7)).HorizontalAlignment =-4108;//居中
        xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(1,7)).VerticalAlignment =-4108;
        xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Font.Size=10;
        xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(3).Weight = 2; //设置左边距
        xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(4).Weight = 2;//设置右边距
        xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(1).Weight = 2;//设置顶边距
        xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(2).Weight = 2;//设置底边距
        xls.UserControl = true;  //很重要,不能省略,不然会出问题 意思是excel交由用户控制
        xls=null;
        xlBook=null;
        xlsheet=null;
      }
    </script>
    <link href="css/styles3.css" rel="stylesheet" type="text/css"/>
    <title>ziyuanweihu</title>
  </head>
  <body>
    <form id="fors" method="post" action="/WebModule/admins/card/showcard.faces" enctype="application/x-www-form-urlencoded">
      <table id="fors:top" border="0" cellpadding="0" cellspacing="0" width="100%">
        <tbody>
          <tr>
            <td class="left"><img src="images/jiao1.gif" alt="" /></td>
            <td class="topMiddle"></td>
            <td class="right"><img src="images/jiao2.gif" alt="" /></td>
          </tr>
        </tbody>
      </table>
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tbody>
          <tr>
            <td class="middleLeft"></td>
            <td class="btstyle">
              <table id="fors:sort" border="0" cellpadding="0" cellspacing="0" style="valign:center" width="100%">
                <tbody>
                  <tr>
                    <td class="btstyle">
                      <input type="button" name="fors:_id7" value="生成excel文件"  />
                    </td>
                  </tr>
                </tbody>
              </table>
              <table id="fors:data" border="1" cellpadding="0" cellspacing="1" width="100%">
                <thead>
                  <tr>
                    <th scope="col"><span id="fors:data:headerText1">卡号</span></th>
                    <th scope="col"><span id="fors:data:headerText2">密码</span></th>
                    <th scope="col"><span id="fors:data:headerText3">计费方式</span></th>
                    <th scope="col"><span id="fors:data:headerText4">有效天数</span></th>
                    <th scope="col">金额</th>
                    <th scope="col"><span id="fors:data:headerText6">所属服务项目</span></th>
                    <th scope="col"><span id="fors:data:headerText7">发卡时间</span></th>
                  </tr>
                </thead>
                <tbody>
                  <tr>
                    <td>h000010010</td>
                    <td>543860</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010011</td>
                    <td>683352</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010012</td>
                    <td>433215</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010013</td>
                    <td>393899</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010014</td>
                    <td>031736</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010015</td>
                    <td>188600</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010016</td>
                    <td>363407</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010017</td>
                    <td>175315</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010018</td>
                    <td>354437</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                  <tr>
                    <td>h000010019</td>
                    <td>234750</td>
                    <td>计点</td>
                    <td></td>
                    <td>2.0</td>
                    <td>测试项目</td>
                    <td>2006-06-23 10:14:40.843</td>
                  </tr>
                </tbody>
              </table>
            </td>
            <td class="middleRight"></td>
          </tr>
        </tbody>
      </table>
      <table id="fors:bottom" border="0" cellpadding="0" cellspacing="0" width="100%">
        <tbody>
          <tr>
            <td class="left">
              <img src="images/jiao3.gif" alt=""/>
            </td>
            <td class="bottomMiddle"> </td>
            <td class="right">
              <img src="images/jiao4.gif" alt=""/>
            </td>
          </tr>
        </tbody>
      </table>
      <input type="hidden" name="fors" value="fors" />
    </form>
  </body>
</html>
<%--
// ---------------------------------- 1 ---------------------------------- \\
<HTML>
  <HEAD>
    <TITLE>导出到excel</TITLE>
    <META NAME="Generator" C>
    <META NAME="Author" C>
    <META NAME="Keywords" C>
    <META NAME="Description" C>
  </HEAD>
  <script language="javascript">
    function exportExcel(tableid) {
      if(typeof(EXPORT_OBJECT)!="object") {
        document.body.insertAdjacentHTML("afterBegin","<OBJECT style='display:none' classid='clsid:0002E510-0000-0000-C000-000000000046' id='EXPORT_OBJECT'></Object>");
      }
      with(EXPORT_OBJECT) {
        DataType = "HTMLData";
        HTMLData =tableid.outerHTML;
        try {
          ActiveSheet.Export("d:\\表格.xls", 0);
          alert('成功导出EXCEL表格!');
        }
        catch (e) {
          alert('导出EXCEL表格失败,请确定已安装Excel2000(或更高版本),并且没打开同名xls文件');
        }
      }
    }
  </script>
  <BODY>
    <table id="tableid" border="1">
      <tr>
        <td>第一个单元格</td>
        <td>第二个单元格</td>
        <td>第三个单元格</td>
      </tr>
      <tr>
        <td>第四个单元格</td>
        <td>第五个单元格</td>
        <td>第六个单元格</td>
      </tr>
    </table>
    <input type="button" value="导出EXCEL表格" >
  </BODY>
</HTML>
// ---------------------------------- 2 ---------------------------------- \\
<!-- 导出到office2000版本的word或excel中 -->
<script language="javascript">
  function tableToExcel() {
    window.clipboardData.setData("Text",document.all('theObjTable').outerHTML);
    try {
      var ExApp = new ActiveXObject("Excel.Application");
      var ExWBk = ExApp.workbooks.add();
      var ExWSh = ExWBk.worksheets(1);
      ExApp.DisplayAlerts = false;
      ExApp.visible = true;
    }
    catch(e) {
      alert("您的电脑没有安装Microsoft Excel软件!");
      return false;
    }
    ExWBk.worksheets(1).Paste;
  }
  function tableToWord() {
    var oWD = new ActiveXObject("Word.Application");
    var oDC = oWD.Documents.Add("",0,1);
    var oRange =oDC.Range(0,1);
    var sel = document.body.createTextRange();
    sel.moveToElementText(theObjTable);
    sel.select();
    sel.execCommand("Copy");
    oRange.Paste();
    oWD.Application.Visible = true;
  }
</script>
<table id="theObjTable">
  <tr>
  <td>在html页面中</td>
  <td>把网页中的表</td>
  <td>格内容导入到</td>
  <td>word中</td>
  <td>也可以导入到excel</td>
</tr>
</table>
<input type="button" value="导入到excel" >
<input type="button" value="导入到word" >
// ---------------------------------- 3 ---------------------------------- \\
--%>
******************************************************************************************************
5.有关用js实现网页中的内容直接转化为excel的方法
******************************************************************************************************
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns=" http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type c>
<script>
function out(){
try{
var elTable = document.getElementById("out");
var oRangeRef = document.body.createTextRange();
oRangeRef.moveToElementText( elTable );
oRangeRef.execCommand( "Copy" );
var oXL = new ActiveXObject("Excel.Application")
var oWB = oXL.Workbooks.Add ;
var oSheet = oWB.ActiveSheet ;
oSheet.Paste();
oSheet.Cells.NumberFormatLocal = "@";
oSheet.Columns("D:D").Select
oXL.Selection.ColumnWidth = 20
//oSheet.Columns("A:A").Select
//oSheet.Columns("A").Width = 1000;
oXL.Visible = true;
oSheet = null;
oWB = null;
appExcel = null;
}catch(e){alert(e.description)}
}
</script>
</head>
<body>
<table id ='out'>
<tr>
  <td x:str bgcolor="#FF0000">00001</td>
  <td x:str>0002</td>
</tr>
<tr>
  <td height=18 align=right style='height:13.5pt' x:str>00001</td>
  <td align=right x:str>000002</td>
</tr>
<tr>
  <td x:str>0003</td>
  <td x:str>00003</td>
</tr>
</table>
<INPUT type="button" value="Button" id=button1 name=button1 >
</body>
</html>