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 相关文章推荐
动态控制Table的js代码
Mar 07 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
Sep 14 Javascript
js 函数调用模式小结
Dec 26 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
Sep 27 Javascript
node.js中的socket.io的广播消息
Dec 15 Javascript
javascript实现左右控制无缝滚动
Dec 31 Javascript
JavaScript字符串常用类使用方法汇总
Apr 14 Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
Jan 15 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
May 23 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
Aug 24 Javascript
VUE 实现滚动监听 导航栏置顶的方法
Sep 11 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
php Undefined index和Undefined variable的解决方法
2008/03/27 PHP
学习php笔记 字符串处理
2010/10/19 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
vue组件的写法汇总
2018/04/12 Javascript
vue如何判断dom的class
2018/04/26 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
python中的一些类型转换函数小结
2013/02/10 Python
python操作gmail实例
2015/01/14 Python
Python实现身份证号码解析
2015/09/01 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
详解Python 函数如何重载?
2019/04/23 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
EJB3推出JPA的原因
2013/10/16 面试题
学校办公室主任职责
2013/12/27 职场文书
生产车间主管岗位职责
2013/12/28 职场文书
企业管理培训感言
2014/01/27 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python