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 相关文章推荐
用脚本调用样式的几种方法
Dec 09 Javascript
JSON辅助格式化处理方法
Mar 26 Javascript
javascript去掉代码里面的注释
Jul 24 Javascript
微信小程序 wxapp内容组件 icon详细介绍
Oct 31 Javascript
angular+ionic 的app上拉加载更新数据实现方法
Jan 16 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
使用vue实现各类弹出框组件
Jul 03 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
Vue实现手机扫描二维码预览页面效果
May 28 Javascript
微信小程序实现watch监听
Jun 04 Javascript
vue 动态创建组件的两种方法
Dec 31 Vue.js
Ajax请求超时与网络异常处理图文详解
May 23 Javascript
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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
react的hooks的用法详解
2020/10/12 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
python中import reload __import__的区别详解
2017/10/16 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python selenium操作cookie的实现
2020/03/18 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
音乐专业自荐信
2014/02/07 职场文书
2014年应急工作总结
2014/12/11 职场文书
环卫工人慰问信
2015/02/15 职场文书
KTV员工管理制度
2015/08/06 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
Python OpenCV 图像平移的实现示例
2021/06/04 Python