手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JS Excel读取和写入操作(模板操作)实现代码
JS Excel读取和写入操作(模板操作)实现代码
摘要:本人是在实际项目中摸索出,JS读写Excel(模板)数据,包括怎么用JS把图片插入Excel中。首先,添加一个公用的模板地址JS,如下:Ad...

本人是在实际项目中摸索出,JS读写Excel(模板)数据,包括怎么用JS把图片插入Excel中。

首先,添加一个公用的模板地址JS,如下:

AddZDaddress.js

复制代码 代码如下:

///////////////////////////////////////////////////////////////////////////////////////////////////

////DocName:信任站点地址添加--AddZDaddress.js

////Author:lify

////Company:Wavenet

////Date:2009-11-04

////EditDate:2010-03-11

////MainContent:Findings,Ajax And So On;

//////////////////////////////////////////////////////////////////////////////////////////////////

var BelieveAddress='172.18.1.25/psc1';////配置地址配置程序时需要的配置地址

////**********************************Excel 导入到WEB界面模板地址集合*******************************************//

//////////////////////////飞行检测excel模板地址配置/////////////////////////////////////////////////////////////

var template_path_FxjcExcelDatasIntoSqlDatas = "http://%22+believeaddress+%22/NewReports/xls_template/飞行检测城镇污水厂进出水主要污染物浓度.xls";

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////***********************************************************************************************************//

////*********************************Excel 录入模板导入地址集合**********************************************//

//////////////////////////月报导入excel地址配置//////////////////////////////////

var template_path_month = "http://%22+believeaddress+%22/NewReports/xls_template/上海市污水处理企业生产运行表.xls";

/////////////////////////////////////////////////////////////////////////////////

//////////////////////////年报导入excel地址配置//////////////////////////////////

var template_path_year = "http://%22+believeaddress+%22/NewReports/xls_template/上海市污水处理设施信息表.xls";

////*********************************************************************************************************//

//图片地址

var pic_path="http://%22+believeaddress+%22/NewReports/";

/////////////////////////////////////////////////////////////////////////////////

再次,怎么样把页面数据读取到Excel中JS,如下:

YearReportLuRu.jsYearReportLuRu.js

复制代码 代码如下:

////DocName:污水处理设施信息表(年报)-录入报表--YearReportLuRu.js

////Author:lify

////Company:Wavenet

////Date:2009-08-14

////EditDate:2009-08-14

////MainContent:Findings,Ajax And So On;

///////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////添加正则表达式类/////////////////////////////////////////////////////////////

document.write("<script language="javascript" type="text/javascript" src="js/RegularExpression.js"></script>");

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function AutomateExcel3()

{

//alert(pic_path+document.getElementById("ImgUrl").value);//测试

var xls = new ActiveXObject("Excel.Application");

xls.Visible = true;

var newBook = xls.Workbooks.Open(template_path_year);//这里的Add方法里的参数是模板的路径

var oSheet=newBook.ActiveSheet;

////////////////////////////////////////////写入数据到模板中////////////////////////////////////////////////////////////

///////////////法人单位名称/////////////////////////////////////////////////////////////////////////////////////////////

oSheet.Cells(2,3).value = Trim(PT.rows[0].cells[1].innerText);

///////////////法人单位代码以及代表姓名/////////////////////////////////////////////////////////////////////////////////////////////////

oSheet.Cells(2,9).value = Trim(PT.rows[0].cells[3].innerText);

oSheet.Cells(2,13).value = Trim(PT.rows[0].cells[5].innerText);

//////////////进出口三张表/////////////////////////////////////////////////////////////////////////////////////////

oSheet.Cells(3,2).value=Trim(PT.rows[1].cells[1].innerText);

oSheet.Cells(3,6).value=Trim(PT.rows[1].cells[3].innerText);

oSheet.Cells(3,8).value=Trim(PT.rows[1].cells[5].innerText);

oSheet.Cells(3,10).value=Trim(PT.rows[1].cells[7].innerText);

oSheet.Cells(3,13).value=Trim(PT.rows[1].cells[9].innerText);

oSheet.Cells(4,2).value=Trim(PT.rows[2].cells[1].innerText);

oSheet.Cells(4,4).value=Trim(PT.rows[2].cells[3].innerText);

oSheet.Cells(4,6).value=Trim(PT.rows[2].cells[5].innerText);

oSheet.Cells(4,8).value=Trim(PT.rows[2].cells[7].innerText);

oSheet.Cells(4,10).value=Trim(PT.rows[2].cells[9].innerText);

oSheet.Cells(4,12).value=Trim(PT.rows[2].cells[11].innerText);

oSheet.Cells(4,14).value=Trim(PT.rows[2].cells[13].innerText);

oSheet.Cells(5,2).value=Trim(PT.rows[3].cells[1].innerText);

oSheet.Cells(5,5).value=Trim(PT.rows[3].cells[3].innerText);

oSheet.Cells(5,8).value=Trim(PT.rows[3].cells[5].innerText);

oSheet.Cells(5,10).value=Trim(PT.rows[3].cells[7].innerText);

oSheet.Cells(5,12).value=Trim(PT.rows[3].cells[9].innerText);

oSheet.Cells(5,14).value=Trim(PT.rows[3].cells[11].innerText);

//////////////年运行简况///////////////////////

oSheet.Cells(6,4).value = Trim(PT.rows[4].cells[3].innerText);

oSheet.Cells(6,6).value = Trim(PT.rows[4].cells[5].innerText);

oSheet.Cells(6,8).value = Trim(PT.rows[4].cells[7].innerText);

oSheet.Cells(6,10).value = Trim(PT.rows[4].cells[9].innerText);

oSheet.Cells(6,12).value = Trim(PT.rows[4].cells[11].innerText);

oSheet.Cells(6,14).value = Trim(PT.rows[4].cells[13].innerText);

oSheet.Cells(7,4).value = Trim(PT.rows[5].cells[2].innerText);

oSheet.Cells(7,6).value = Trim(PT.rows[5].cells[4].innerText);

oSheet.Cells(7,8).value = Trim(PT.rows[5].cells[6].innerText);

oSheet.Cells(7,10).value = Trim(PT.rows[5].cells[8].innerText);

oSheet.Cells(7,12).value = Trim(PT.rows[5].cells[10].innerText);

oSheet.Cells(7,14).value = Trim(PT.rows[5].cells[12].innerText);

//////////////年处理水量///////////////////////

oSheet.Cells(8,2).value = Trim(PT.rows[6].cells[1].innerText);

oSheet.Cells(8,5).value = Trim(PT.rows[6].cells[3].innerText);

oSheet.Cells(8,8).value = Trim(PT.rows[6].cells[5].innerText);

oSheet.Cells(8,11).value = Trim(PT.rows[6].cells[7].innerText);

oSheet.Cells(8,14).value = Trim(PT.rows[6].cells[9].innerText);

//////////////污水厂工艺概况///////////////////////

oSheet.Cells(10,3).value = Trim(PT.rows[8].cells[1].innerText);

oSheet.Cells(10,4).value = Trim(PT.rows[8].cells[2].innerText);

oSheet.Cells(10,5).value = Trim(PT.rows[8].cells[3].innerText);

oSheet.Cells(10,7).value = Trim(PT.rows[8].cells[4].innerText);

oSheet.Cells(11,3).value = Trim(PT.rows[9].cells[1].innerText);

oSheet.Cells(11,4).value = Trim(PT.rows[9].cells[2].innerText);

oSheet.Cells(11,5).value = Trim(PT.rows[9].cells[3].innerText);

oSheet.Cells(11,7).value = Trim(PT.rows[9].cells[4].innerText);

oSheet.Cells(12,3).value = Trim(PT.rows[10].cells[1].innerText);

oSheet.Cells(12,4).value = Trim(PT.rows[10].cells[2].innerText);

oSheet.Cells(12,5).value = Trim(PT.rows[10].cells[3].innerText);

oSheet.Cells(12,7).value = Trim(PT.rows[10].cells[4].innerText);

//--------------------------运行费用分析-------------------------------------//

oSheet.Cells(13,3).value = Trim(PT.rows[11].cells[2].innerText);

oSheet.Cells(13,5).value = Trim(PT.rows[11].cells[4].innerText);

oSheet.Cells(13,7).value = Trim(PT.rows[11].cells[6].innerText);

oSheet.Cells(13,9).value = Trim(PT.rows[11].cells[8].innerText);

////////////////////////////////厂外输送泵站示意图////////////////////////////

//copy(document.getElementById("ImgUrl"));

//oSheet.Pictures.Insert(pic_path+document.getElementById("ImgUrl").value);///////.Cells(13,11)

var msoShaoeRectangle = 1;//AddShape(透明度,左,上,宽度,高度)

oSheet.Shapes.AddShape(msoShaoeRectangle, 560, 330, 200, 150).Fill.UserPicture(pic_path+document.getElementById("ImgUrl").value);

//oSheet.Cell(13,11).select();//选中excel的单元格

//oSheet.Pictures.Insert(PT.rows[11].cells[8].getElementById("ImgUrl").src);

//////////////////////////////////////////////////////////////////////////////

oSheet.Cells(14,3).value = Trim(PT.rows[12].cells[1].innerText);

oSheet.Cells(14,5).value = Trim(PT.rows[12].cells[3].innerText);

oSheet.Cells(14,7).value = Trim(PT.rows[12].cells[5].innerText);

oSheet.Cells(14,9).value = Trim(PT.rows[12].cells[7].innerText);

oSheet.Cells(15,3).value = Trim(PT.rows[13].cells[1].innerText);

oSheet.Cells(15,5).value = Trim(PT.rows[13].cells[3].innerText);

oSheet.Cells(15,7).value = Trim(PT.rows[13].cells[5].innerText);

oSheet.Cells(15,9).value = Trim(PT.rows[13].cells[7].innerText);

oSheet.Cells(16,5).value = Trim(PT.rows[14].cells[1].innerText);

oSheet.Cells(16,7).value = Trim(PT.rows[14].cells[3].innerText);

oSheet.Cells(16,9).value = Trim(PT.rows[14].cells[5].innerText);

oSheet.Cells(17,3).value = Trim(PT.rows[15].cells[1].innerText);

oSheet.Cells(17,5).value = Trim(PT.rows[15].cells[3].innerText);

oSheet.Cells(17,7).value = Trim(PT.rows[15].cells[5].innerText);

//---------------------------------------------------------------------------//

//////////////污水厂表下方信息///////////////////////

oSheet.Cells(18,2).value = Trim(RT.rows[0].cells[1].innerText);

oSheet.Cells(18,7).value = Trim(RT.rows[0].cells[3].innerText);

oSheet.Cells(18,11).value = Trim(RT.rows[0].cells[5].innerText);

oSheet.Cells(18,14).value = Trim(RT.rows[0].cells[7].innerText);

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

xls.Visible = true;

xls.UserControl = true;

xls = null;

idTmr = window.setInterval("Cleanup();",1);

//xls.quit();

}

function Cleanup()

{

window.clearInterval(idTmr);

CollectGarbage();

}

function copy(tabid){

var oControlRange = document.body.createControlRange();

oControlRange.add(tabid,0);

oControlRange.select();

document.execCommand("Copy");

}

最后,如何读取到Excel模板中数据到页面上共客户编辑数据再保存到数据库中(此步可以用xml发送至后台交互,在此不进一步说明)JS,如下:

Fxjc_ExcelDatasIntoSqlDatas.js

复制代码 代码如下:

////DocName:导入模板数据功能--Fxjc_ExcelDatasIntoSqlDatas.js

////Author:lify

////Company:Wavenet

////Date:2010-03-12

////EditDate:2010-03-12

////MainContent:Findings,Ajax And So On;

//////////////////////////////////////////////////////////////////////////////////////////////////

var excelFileName=""; //本地EXCEL地址

var oWB;

var idTmr="";

function AutomateExcel3()

{

//删除PT表的除前2行的所有行

DeleteTablePT();

//alert(pic_path+document.getElementById("ImgUrl").value);//测试

var xls=null;

var newBook;

try{

xls = new ActiveXObject("Excel.Application");

}catch(e){openBg(0);openTS(0);

alert("请您打开ActiveX控件,具体操作:单击IE中的“工具”里“Internet 选项”,单击“安全”中的“自定义级别”中“ActiveX控件和插件”中,请选择第三项为启用即可。详细错误:"+e.message);

return ;

}

if (xls == null){openBg(0);openTS(0);

alert("创建Excel文件失败,可能是您的计算机上没有正确安装Microsoft Office Excel软件或浏览器的安全级别设置过高!");

return;

}

try{

newBook = xls.Workbooks.Open(excelFileName);//这里的Add方法里的参数是模板的路径

}catch(e){openBg(0);openTS(0);

alert("加载的Excel文件路径有错误!详细:"+e.message);

return ;

}

var oSheet=newBook.ActiveSheet;

////////////////////////////////////////////模板写入数据到WEB页面中////////////////////////////////////////////////////////////

var xhnum=0;

//alert("oSheet.Cells(3,18).value="+oSheet.Cells(3,18).value+"|"+(oSheet.Cells(3,5).value=="<30")+"|oSheet.Cells(3,20).value="+oSheet.Cells(3,20).value);

for(var i=3;i<108;i++)

{

if(oSheet.Cells(i,1).value)

{

xhnum++;

var newRow = document.getElementById("PT").insertRow(-1);

var newCell;

newRow.align = "center";

newRow.height = "35px";

for(var j=0;j<28;j++)

{

if(j==4)

{

//什么都不做

}

else if(j<4)

{

newCell = newRow.insertCell(j);

if(j==0) newCell.innerHTML = (xhnum).toString();//序号

else if(j==1)

{

if(!oSheet.Cells(i,1).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,1).value=="——"||oSheet.Cells(i,1).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,1).value==""?"":oSheet.Cells(i,1).value);

}

else if(j==2)

{

if(!oSheet.Cells(i,2).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,2).value=="——"||oSheet.Cells(i,2).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,2).value==""?"":oSheet.Cells(i,2).value);

//newCell.innerHTML = (oSheet.Cells(i,2).value==""?"":oSheet.Cells(i,2).value);

}

else if(j==3)

{

if(!oSheet.Cells(i,4).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,4).value=="——"||oSheet.Cells(i,4).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,4).value==""?"":oSheet.Cells(i,4).value);

//newCell.innerHTML = (oSheet.Cells(i,4).value==""?"":oSheet.Cells(i,4).value);

}

else if(j==9)

{

if(!oSheet.Cells(i,j+1).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,j+1).value=="<30")

newCell.innerHTML = "30";

else if(oSheet.Cells(i,j+1).value=="——"||oSheet.Cells(i,j+1).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,j+1).value==""?"":oSheet.Cells(i,j+1).value);

}

else

{

if(!oSheet.Cells(i,j+1).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,j+1).value=="<30")

newCell.innerHTML = "30";

else if(oSheet.Cells(i,j+1).value=="<DL")

newCell.innerHTML = "";

else if(oSheet.Cells(i,j+1).value=="——"||oSheet.Cells(i,j+1).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,j+1).value==""?"":oSheet.Cells(i,j+1).value);

}

}

else

{

newCell = newRow.insertCell(j-1);//少一个就可以了,少样品编号插入

if(j==0) newCell.innerHTML = (xhnum).toString();//序号

else if(j==1)

{

if(!oSheet.Cells(i,1).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,1).value=="——"||oSheet.Cells(i,1).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,1).value==""?"":oSheet.Cells(i,1).value);

}

else if(j==2)

{

if(!oSheet.Cells(i,2).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,2).value=="——"||oSheet.Cells(i,2).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,2).value==""?"":oSheet.Cells(i,2).value);

//newCell.innerHTML = (oSheet.Cells(i,2).value==""?"":oSheet.Cells(i,2).value);

}

else if(j==3)

{

if(!oSheet.Cells(i,4).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,4).value=="——"||oSheet.Cells(i,4).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,4).value==""?"":oSheet.Cells(i,4).value);

//newCell.innerHTML = (oSheet.Cells(i,4).value==""?"":oSheet.Cells(i,4).value);

}

else if(j==9)

{

if(!oSheet.Cells(i,j+1).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,j+1).value=="<30")

newCell.innerHTML = "30";

else if(oSheet.Cells(i,j+1).value=="——"||oSheet.Cells(i,j+1).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,j+1).value==""?"":oSheet.Cells(i,j+1).value);

}

else

{

if(!oSheet.Cells(i,j+1).value)

newCell.innerHTML = "";

else if(oSheet.Cells(i,j+1).value=="<30")

newCell.innerHTML = "30";

else if(oSheet.Cells(i,j+1).value=="<DL")

newCell.innerHTML = "";

else if(oSheet.Cells(i,j+1).value=="——"||oSheet.Cells(i,j+1).value=="--")

newCell.innerHTML = "";

else

newCell.innerHTML = (oSheet.Cells(i,j+1).value==""?"":oSheet.Cells(i,j+1).value);

}

}

}

}

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

newBook.Close();

newBook=null;

xls = null;

openBg(0);openTS(0);

///////////////////////////////开启编辑和保存按钮功能///////////////////////////////////

OnOrOffBtn(1);

////////////////////////////////////////////////////////////////////////////////////////

idTmr = window.setInterval("Cleanup();",1);

////////////////////////////////表格数字和字符转化//////////////////////////////////////

TableIntoDatas();////表格数字和字符转化

////////////////////////////////////////////////////////////////////////////////////////

}

其实做报表很痛苦,但是从中也能经历不少。很高兴以此文章让那些报表高手前来指导和拍砖。谢谢了!

以上为针对excel模板总结的一些方法,欢迎各位前来拍砖!也欢迎大家来交流交流!

【JS Excel读取和写入操作(模板操作)实现代码】相关文章:

新闻内页-JS分页

教你如何终止JQUERY的$.AJAX请求

Js和JQuery获取鼠标指针坐标的实现代码分享

JavaScript深度复制(deep clone)的实现方法

让插入到 innerHTML 中的 script 跑起来的实现代码

JavaScript中用sort()方法对数组元素进行排序的操作

AngularJS 最常用的功能汇总

jQuery实现弹出窗口中切换登录与注册表单

Javascript 字符串模板的简单实现

JavaScript操作Cookie方法实例分析

精品推荐
分类导航