javascript 操作Word和Excel的实现代码


Posted in Javascript onOctober 26, 2009

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>
Javascript 相关文章推荐
JavaScript 撑出页面文字换行
Jun 15 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
使用apply方法实现javascript中的对象继承
Dec 16 Javascript
JQuery中DOM事件合成用法实例分析
Jun 13 Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
Jul 12 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
axios+Vue实现上传文件显示进度功能
Apr 14 Javascript
微信小程序代码上传、审核发布小程序
May 18 Javascript
jQuery实现评论模块
Aug 19 jQuery
JavaScript 对话框和状态栏使用说明
Oct 25 #Javascript
5款Javascript颜色选择器
Oct 25 #Javascript
11款基于Javascript的文件管理器
Oct 25 #Javascript
JavaScript 三种不同位置代码的写法
Oct 25 #Javascript
JavaScript 事件的一些重要说明
Oct 25 #Javascript
javascript写的一个链表实现代码
Oct 25 #Javascript
JavaScript的变量作用域深入理解
Oct 25 #Javascript
You might like
浅析iis7.5安装配置php环境
2015/05/10 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
JavaScript类的写法
2016/09/17 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
python读写ini配置文件方法实例分析
2015/06/30 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
中学生自我评价范文
2014/02/08 职场文书
公司授权委托书范文
2014/09/21 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技