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将NodeList作为Array数组处理的方法
Jul 09 Javascript
jQuery创建DOM元素实例解析
Jan 19 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
Oct 27 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
Javascript中的作用域及块级作用域
Dec 08 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 Javascript
JS浮点数运算结果不精确的Bug解决
Aug 01 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
Jul 28 Javascript
详解JS深拷贝与浅拷贝
Aug 04 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
Aug 12 Javascript
详解JavaScript 高阶函数
Sep 14 Javascript
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
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注入实例
2006/10/09 PHP
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
学习ExtJS table布局
2009/10/08 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
如何利用Fabric自动化你的任务
2016/10/20 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
python代码xml转txt实例
2020/03/10 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
经典广告词大全
2014/03/14 职场文书
医院节能减排方案
2014/06/13 职场文书
代领报检证委托书范本
2014/10/11 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang
Nginx缓存设置案例详解
2021/09/15 Servers
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏