日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS操作Excel读取和写入(模板操作)

發(fā)布時間:2025/5/22 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS操作Excel读取和写入(模板操作) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??????????? 前一段時間一直在做報表,所以肯定會用到Excel的操作,但是在網(wǎng)上查閱資料有關(guān)JS操作excel較少,有的話,也都是老生常談或很零碎的一些東西。本人是在實際項目中摸索出,JS讀寫Excel(模板)數(shù)據(jù),包括怎么用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 導(dǎo)入到WEB界面模板地址集合*******************************************//
//飛行檢測excel模板地址配置/
var template_path_FxjcExcelDatasIntoSqlDatas = "http://%22+believeaddress+%22/NewReports/xls_template/飛行檢測城鎮(zhèn)污水廠進出水主要污染物濃度.xls";

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

?

*********************************Excel 錄入模板導(dǎo)入地址集合**********************************************//
//月報導(dǎo)入excel地址配置//
var template_path_month = "http://%22+believeaddress+%22/NewReports/xls_template/上海市污水處理企業(yè)生產(chǎn)運行表.xls";
/
//年報導(dǎo)入excel地址配置//
var template_path_year = "http://%22+believeaddress+%22/NewReports/xls_template/上海市污水處理設(shè)施信息表.xls";
*********************************************************************************************************//
//圖片地址
var pic_path="http://%22+believeaddress+%22/NewReports/";
/

????????????? 再次,怎么樣把頁面數(shù)據(jù)讀取到Excel中JS,如下:

YearReportLuRu.jsYearReportLuRu.js

///

DocName:污水處理設(shè)施信息表(年報)-錄入報表--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方法里的參數(shù)是模板的路徑
??? var? oSheet=newBook.ActiveSheet;
寫入數(shù)據(jù)到模板中
??? ///法人單位名稱/
??? 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模板中數(shù)據(jù)到頁面上共客戶編輯數(shù)據(jù)再保存到數(shù)據(jù)庫中(此步可以用xml發(fā)送至后臺交互,在此不進一步說明)JS,如下:

?

Fxjc_ExcelDatasIntoSqlDatas.js///
DocName:導(dǎo)入模板數(shù)據(jù)功能--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("創(chuàng)建Excel文件失敗,可能是您的計算機上沒有正確安裝Microsoft Office Excel軟件或瀏覽器的安全級別設(shè)置過高!");
???? return;
??? }
??? try{
???????? newBook = xls.Workbooks.Open(excelFileName);//這里的Add方法里的參數(shù)是模板的路徑
???????? }catch(e){openBg(0);openTS(0);
??????? alert("加載的Excel文件路徑有錯誤!詳細:"+e.message);
??????? return ;
??? }
??? var? oSheet=newBook.ActiveSheet;
??? 模板寫入數(shù)據(jù)到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 = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,1).value=="——"||oSheet.Cells(i,1).value=="--")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,1).value==""?"&nbsp;":oSheet.Cells(i,1).value);
??????????????????? }
??????????????????? else if(j==2)
??????????????????? {
??????????????????????? if(!oSheet.Cells(i,2).value)
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,2).value=="——"||oSheet.Cells(i,2).value=="--")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,2).value==""?"&nbsp;":oSheet.Cells(i,2).value);
??????????????????????? //newCell.innerHTML = (oSheet.Cells(i,2).value==""?"&nbsp;":oSheet.Cells(i,2).value);
??????????????????? }
??????????????????? else if(j==3)
??????????????????? {
??????????????????????? if(!oSheet.Cells(i,4).value)
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,4).value=="——"||oSheet.Cells(i,4).value=="--")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,4).value==""?"&nbsp;":oSheet.Cells(i,4).value);
??????????????????????? //newCell.innerHTML = (oSheet.Cells(i,4).value==""?"&nbsp;":oSheet.Cells(i,4).value);
??????????????????? }
??????????????????? else if(j==9)
??????????????????? {
??????????????????????? if(!oSheet.Cells(i,j+1).value)
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? 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 = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,j+1).value==""?"&nbsp;":oSheet.Cells(i,j+1).value);
??????????????????? }
??????????????????? else
??????????????????? {
??????????????????????? if(!oSheet.Cells(i,j+1).value)
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,j+1).value=="<30")
??????????????????????????? newCell.innerHTML = "30";
??????????????????????? else if(oSheet.Cells(i,j+1).value=="<DL")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,j+1).value=="——"||oSheet.Cells(i,j+1).value=="--")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,j+1).value==""?"&nbsp;":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 = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,1).value=="——"||oSheet.Cells(i,1).value=="--")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,1).value==""?"&nbsp;":oSheet.Cells(i,1).value);
??????????????????? }
??????????????????? else if(j==2)
??????????????????? {
??????????????????????? if(!oSheet.Cells(i,2).value)
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,2).value=="——"||oSheet.Cells(i,2).value=="--")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,2).value==""?"&nbsp;":oSheet.Cells(i,2).value);
??????????????????????? //newCell.innerHTML = (oSheet.Cells(i,2).value==""?"&nbsp;":oSheet.Cells(i,2).value);
??????????????????? }
??????????????????? else if(j==3)
??????????????????? {
??????????????????????? if(!oSheet.Cells(i,4).value)
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,4).value=="——"||oSheet.Cells(i,4).value=="--")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,4).value==""?"&nbsp;":oSheet.Cells(i,4).value);
??????????????????????? //newCell.innerHTML = (oSheet.Cells(i,4).value==""?"&nbsp;":oSheet.Cells(i,4).value);
??????????????????? }
??????????????????? else if(j==9)
??????????????????? {
??????????????????????? if(!oSheet.Cells(i,j+1).value)
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? 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 = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,j+1).value==""?"&nbsp;":oSheet.Cells(i,j+1).value);
??????????????????? }
??????????????????? else
??????????????????? {
??????????????????????? if(!oSheet.Cells(i,j+1).value)
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,j+1).value=="<30")
??????????????????????????? newCell.innerHTML = "30";
??????????????????????? else if(oSheet.Cells(i,j+1).value=="<DL")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else if(oSheet.Cells(i,j+1).value=="——"||oSheet.Cells(i,j+1).value=="--")
??????????????????????????? newCell.innerHTML = "&nbsp;";
??????????????????????? else
??????????????????????????? newCell.innerHTML = (oSheet.Cells(i,j+1).value==""?"&nbsp;":oSheet.Cells(i,j+1).value);
??????????????????? }
??????????????? }
??????????? }
??????? }
??? }
??? ///
??? newBook.Close();
??? newBook=null;
??? xls = null;??
??? openBg(0);openTS(0);
??? ///開啟編輯和保存按鈕功能///
??? OnOrOffBtn(1);
???
??? idTmr = window.setInterval("Cleanup();",1);
??? 表格數(shù)字和字符轉(zhuǎn)化//
??? TableIntoDatas();表格數(shù)字和字符轉(zhuǎn)化
???
}

?其實做報表很痛苦,但是從中也能經(jīng)歷不少。很高興以此文章讓那些報表高手前來指導(dǎo)和拍磚。謝謝了!

?以上為針對excel模板總結(jié)的一些方法,歡迎各位前來拍磚!也歡迎大家來交流交流!

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/lifuyun/archive/2010/04/09/lifuyun20100409.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的JS操作Excel读取和写入(模板操作)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。