JSを使ってExcelに画像を挿入する方法など、実際のプロジェクトでExcel(テンプレート)データをJSで読み書きする方法を理解しました。 まず、次のようにパブリック テンプレート アドレス JS を追加します。 AddZDaddress.js コードをコピー コードは次のとおりです: //////////////////////////////// //// //////////////////////////////////////////// /////// ////////////// ////DocName: 信頼サイト アドレスの追加--AddZDaddress.js ////Author:lify ////会社:Wavenet ////日付:2009-11-04 ////編集日:2010-03-11 ////メインコンテンツ:調査結果、Ajax およびそれでは / /////////////////////////// ////////// ////////////////////////////////////// ////////// var BelieveAddress='172.18.1.25/psc1';////アドレス設定プログラムの設定時に必要な設定アドレス ////***************************************Excel を WEB インターフェイス テンプレートのアドレス コレクションにインポート****** **** ********************************* // //////// ////////////////////フライト検知Excelテンプレートアドレス設定/////////// ///////////////// //////////////////////////////// ///// var template_path_FxjcExcelDatasIntoSqlDatas = "http://" believeaddress "/ NewReports/xls_template/都市下水処理場内外の主要汚染物質濃度のフライト検出.xls"; /////////////////////// /////////////////////////// ///////////////////////////////////////////////// /////////// ////************************************************* ************************************************* *******// ////*********************************Excel入力テンプレートインポート住所集************* **********************************// ////// /////////////////////月報インポートExcelアドレス設定/ ////////////////////// ///////////// var template_path_month = "http://" believeaddress "/NewReports/ xls_template/上海下水処理企業生産運営表.xls"; ///////////////////////////// //////////////////// ////////////////////////////////////////////// ////////////年次報告書インポート Excel アドレス設定/////////////////// ///////////// /// var template_path_year = "http://" believeaddress "/NewReports/xls_template/上海下水処理施設情報表.xls"; / ///************************************************* ************************************************* ***// //画像アドレスvar pic_path="http://" believeaddress "/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>"); <br>//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// <br>function AutomateExcel3() <br>{ <br>//alert(pic_path+document.getElementById("ImgUrl").value);//测试 <br>var xls = new ActiveXObject("Excel.Application"); <br>xls.Visible = true; <br>var newBook = xls.Workbooks.Open(template_path_year);//这里的Add方法里的参数是模板的路径 <br>var oSheet=newBook.ActiveSheet; <br>////////////////////////////////////////////写入数据到模板中//////////////////////////////////////////////////////////// <br>///////////////法人单位名称///////////////////////////////////////////////////////////////////////////////////////////// <br>oSheet.Cells(2,3).value = Trim(PT.rows[0].cells[1].innerText); <br>///////////////法人单位代码以及代表姓名///////////////////////////////////////////////////////////////////////////////////////////////// <br>oSheet.Cells(2,9).value = Trim(PT.rows[0].cells[3].innerText); <br>oSheet.Cells(2,13).value = Trim(PT.rows[0].cells[5].innerText); <br>//////////////进出口三张表///////////////////////////////////////////////////////////////////////////////////////// <br>oSheet.Cells(3,2).value=Trim(PT.rows[1].cells[1].innerText); <br>oSheet.Cells(3,6).value=Trim(PT.rows[1].cells[3].innerText); <br>oSheet.Cells(3,8).value=Trim(PT.rows[1].cells[5].innerText); <br>oSheet.Cells(3,10).value=Trim(PT.rows[1].cells[7].innerText); <br>oSheet.Cells(3,13).value=Trim(PT.rows[1].cells[9].innerText); <br>oSheet.Cells(4,2).value=Trim(PT.rows[2].cells[1].innerText); <br>oSheet.Cells(4,4).value=Trim(PT.rows[2].cells[3].innerText); <br>oSheet.Cells(4,6).value=Trim(PT.rows[2].cells[5].innerText); <br>oSheet.Cells(4,8).value=Trim(PT.rows[2].cells[7].innerText); <br>oSheet.Cells(4,10).value=Trim(PT.rows[2].cells[9].innerText); <br>oSheet.Cells(4,12).value=Trim(PT.rows[2].cells[11].innerText); <br>oSheet.Cells(4,14).value=Trim(PT.rows[2].cells[13].innerText); <br>oSheet.Cells(5,2).value=Trim(PT.rows[3].cells[1].innerText); <br>oSheet.Cells(5,5).value=Trim(PT.rows[3].cells[3].innerText); <br>oSheet.Cells(5,8).value=Trim(PT.rows[3].cells[5].innerText); <br>oSheet.Cells(5,10).value=Trim(PT.rows[3].cells[7].innerText); <br>oSheet.Cells(5,12).value=Trim(PT.rows[3].cells[9].innerText); <br>oSheet.Cells(5,14).value=Trim(PT.rows[3].cells[11].innerText); <br>//////////////年运行简况/////////////////////// <br>oSheet.Cells(6,4).value = Trim(PT.rows[4].cells[3].innerText); <br>oSheet.Cells(6,6).value = Trim(PT.rows[4].cells[5].innerText); <br>oSheet.Cells(6,8).value = Trim(PT.rows[4].cells[7].innerText); <br>oSheet.Cells(6,10).value = Trim(PT.rows[4].cells[9].innerText); <br>oSheet.Cells(6,12).value = Trim(PT.rows[4].cells[11].innerText); <br>oSheet.Cells(6,14).value = Trim(PT.rows[4].cells[13].innerText); <br>oSheet.Cells(7,4).value = Trim(PT.rows[5].cells[2].innerText); <br>oSheet.Cells(7,6).value = Trim(PT.rows[5].cells[4].innerText); <br>oSheet.Cells(7,8).value = Trim(PT.rows[5].cells[6].innerText); <br>oSheet.Cells(7,10).value = Trim(PT.rows[5].cells[8].innerText); <br>oSheet.Cells(7,12).value = Trim(PT.rows[5].cells[10].innerText); <br>oSheet.Cells(7,14).value = Trim(PT.rows[5].cells[12].innerText); <br>//////////////年处理水量/////////////////////// <br>oSheet.Cells(8,2).value = Trim(PT.rows[6].cells[1].innerText); <br>oSheet.Cells(8,5).value = Trim(PT.rows[6].cells[3].innerText); <br>oSheet.Cells(8,8).value = Trim(PT.rows[6].cells[5].innerText); <br>oSheet.Cells(8,11).value = Trim(PT.rows[6].cells[7].innerText); <br>oSheet.Cells(8,14).value = Trim(PT.rows[6].cells[9].innerText); <br>//////////////污水厂工艺概况/////////////////////// <br>oSheet.Cells(10,3).value = Trim(PT.rows[8].cells[1].innerText); <br>oSheet.Cells(10,4).value = Trim(PT.rows[8].cells[2].innerText); <br>oSheet.Cells(10,5).value = Trim(PT.rows[8].cells[3].innerText); <br>oSheet.Cells(10,7).value = Trim(PT.rows[8].cells[4].innerText); <br>oSheet.Cells(11,3).value = Trim(PT.rows[9].cells[1].innerText); <br>oSheet.Cells(11,4).value = Trim(PT.rows[9].cells[2].innerText); <br>oSheet.Cells(11,5).value = Trim(PT.rows[9].cells[3].innerText); <br>oSheet.Cells(11,7).value = Trim(PT.rows[9].cells[4].innerText); <br>oSheet.Cells(12,3).value = Trim(PT.rows[10].cells[1].innerText); <br>oSheet.Cells(12,4).value = Trim(PT.rows[10].cells[2].innerText); <br>oSheet.Cells(12,5).value = Trim(PT.rows[10].cells[3].innerText); <br>oSheet.Cells(12,7).value = Trim(PT.rows[10].cells[4].innerText); <br>//--------------------------运行費用分析-------------- ----------// <br>oSheet.Cells(13,3).value = Trim(PT.rows[11].cells[2] .innerText); <br>oSheet.Cells(13,5).value = Trim(PT.rows[11].cells[4].innerText); <br>oSheet.Cells(13,7).value = Trim(PT.rows[11].cells[6].innerText); <br>oSheet.Cells(13,9).value = Trim(PT.rows[11].cells[8].innerText); <br>///////////////////////////////厂外输送泵站表示图///////// /////////////////// <br>//copy(document.getElementById("ImgUrl")); <br>//oSheet.Pictures.Insert(pic_path document.getElementById("ImgUrl").value);///////.Cells(13,11) <br>var msoShaoeRectangle = 1;//AddShape(透明度、左、上、宽度、高さ) <br>oSheet.Shapes.AddShape(msoShaoeRectangle, 560, 330, 200, 150).Fill.UserPicture(pic_path document.getElementById("ImgUrl").value); <br>//oSheet.Cell(13,11).select();//中エクセルの单元格 <br>//oSheet.Pictures.Insert(PT.rows[11].cells[8].getElementById( "ImgUrl").src); <br>///////////////////////////////////////////// ////////////////////////////// <br>oSheet.Cells(14,3).value = Trim(PT.rows) [12].cells[1].innerText); <br>oSheet.Cells(14,5).value = Trim(PT.rows[12].cells[3].innerText); <br>oSheet.Cells(14,7).value = Trim(PT.rows[12].cells[5].innerText); <br>oSheet.Cells(14,9).value = Trim(PT.rows[12].cells[7].innerText); <br>oSheet.Cells(15,3).value = Trim(PT.rows[13].cells[1].innerText); <br>oSheet.Cells(15,5).value = Trim(PT.rows[13].cells[3].innerText); <br>oSheet.Cells(15,7).value = Trim(PT.rows[13].cells[5].innerText); <br>oSheet.Cells(15,9).value = Trim(PT.rows[13].cells[7].innerText); <br>oSheet.Cells(16,5).value = Trim(PT.rows[14].cells[1].innerText); <br>oSheet.Cells(16,7).value = Trim(PT.rows[14].cells[3].innerText); <br>oSheet.Cells(16,9).value = Trim(PT.rows[14].cells[5].innerText); <br>oSheet.Cells(17,3).value = Trim(PT.rows[15].cells[1].innerText); <br>oSheet.Cells(17,5).value = Trim(PT.rows[15].cells[3].innerText); <br>oSheet.Cells(17,7).value = Trim(PT.rows[15].cells[5].innerText); <br>//------------------------------------------ ----------------------------// <br>/////////////污水厂表下方情報////////////////////// <br>oSheet.Cells(18,2).value = Trim(RT.rows[0].セル[1].innerText); <br>oSheet.Cells(18,7).value = Trim(RT.rows[0].cells[3].innerText); <br>oSheet.Cells(18,11).value = Trim(RT.rows[0].cells[5].innerText); <br>oSheet.Cells(18,14).value = Trim(RT.rows[0].cells[7].innerText); <br>///////////////////////////////////////////// //////////////////////////////////////////////// ////////////////// <br>xls.Visible = true; <br>xls.UserControl = true; <br>xls = null; <br>idTmr = window.setInterval("Cleanup();",1); <br>//xls.quit(); <br>} <br>関数 Cleanup() <br>{ <br>window.clearInterval(idTmr); <br>CollectGarbage(); <br>} <br>function copy(tabid){ <br>var oControlRange = document.body.createControlRange(); <br>oControlRange.add(tabid,0); <br>oControlRange.select(); <br>document.execCommand("コピー"); <br>} <br> </div> <br>最後に、Excel モジュール内のデータをトップ面まで共用するゲスト爷辑データをデータ库に再保存する方法 (この手順では xml を使用して後台に送信できます。说明)JS、如下: <br>Fxjc_ExcelDatasIntoSqlDatas.js <br><div class="codetitle"> <span><a style="CURSOR: pointer" data="17686" class="copybut" id="copybut17686" onclick="doCopy('code17686')"><u>复制代码</u></a></span> 代码如下:</div> <div class="codebody" id="code17686"> <br>////DocName: テンプレート データのインポート関数 -- Fxjc_ExcelDatasIntoSqlDatas.js <br>////作成者:lify <br>////会社:Wavenet <br>////日付: 2010-03-12 <br>////編集日:2010-03-12 <br>////メインコンテンツ:調査結果、Ajax など <br>/////////// //////////////////////////////////////////////// /// ////////////////////////////////////// <br>var ExcelFileName="" ; //ローカル EXCEL アドレス <br>var oWB; <br>var idTmr=""; <br>function AutomateExcel3() <br>{ <br>//PT テーブルの最初の 2 行を除くすべての行を削除します。 🎜>DeleteTablePT(); <br>//alert(pic_path document.getElementById("ImgUrl").value);//テスト <br>var xls=null; <br>try{ <br>xls = new ActiveXObject(" Excel.Application"); <br>}catch(e){openBg(0);openTS(0); <br>alert("ActiveX コントロールを開いてください。具体的な操作: 「ツール」をクリックしてくださいIEの「インターネット オプション」で、「セキュリティ」、「レベルのカスタマイズ」、「ActiveX コントロールとプラグイン」をクリックし、3番目の項目を選択して有効にしてください。詳細エラー: " e.message); <br>return ; <br>} <br>if (xls == null){openBg(0);openTS(0); <br>alert("Excel ファイルの作成に失敗しました, Microsoft Office Excel ソフトウェアがコンピュータに正しくインストールされていないか、ブラウザのセキュリティ レベルの設定が高すぎる可能性があります!"); <br>return; <br>} <br>try{ <br>newBook = xls.Workbooks.Open (excelFileName);//ここでの Add メソッドのパラメータはテンプレートのパスです <br>}catch(e){openBg(0);openTS(0); <br>alert( 「読み込まれた Excel ファイルのパスが間違っています。詳細: " e.message) <br>} <br>var oSheet=newBook.ActiveSheet; /////////// /////////////////////////テンプレートは WEB ページにデータを書き込みます///// ////////////// /////////////////////////////////// //////// <br>var xhnum=0; <br>//alert("oSheet.Cells(3,18).value=" oSheet.Cells(3,18).value "|" ( oSheet.Cells(3,5).value=="{ <br>if(oSheet.Cells(i,1).value) <br>{ <br>xhnum ; <br>var newRow = document.getElementById(" PT").insertRow(-1); <br>var newCell; <br>newRow.align = "center"; <br>newRow.height = "35px"; <br>for(var j=0;j< 28;j ) <br>{ <br>if(j== 4) <br>{ <br>//何もしない<br>} <br>else if(j{ <br> newCell = newRow.insertCell(j); <br>if( j==0) newCell.innerHTML = (xhnum).toString();//シリアル番号 <br>else if(j==1) <br>{ <br>if(!oSheet.Cells(i,1).value) <br>newCell.innerHTML = " "; <br>else if(oSheet.Cells(i,1).value=="——"| |oSheet.Cells(i,1).value=="- -") <br>newCell.innerHTML = " "; <br>else <br>newCell.innerHTML = (oSheet.Cells(i,1).value ==""?" ":oSheet.Cells(i,1 ).value); <br>} <br>else if(j==2) <br>{ <br>if(!oSheet.Cells(i) ,2).value) <br>newCell.innerHTML = " " ; <br>else if(oSheet.Cells(i,2).value=="——"||oSheet.Cells(i,2).value =="--") <br>newCell.innerHTML = " "; <br>else <br>newCell.innerHTML = (oSheet.Cells(i,2).value==""?" ":oSheet.Cells (i,2).value); <br>//newCell .innerHTML = (oSheet.Cells(i,2).value==""?" ":oSheet.Cells(i,2).value); 🎜>} <br>else if(j==3) <br>{ <br>if(!oSheet.Cells(i,4).value) <br>newCell.innerHTML = " "; (oSheet.Cells(i,4).value=="— —"||oSheet.Cells(i,4).value=="--") <br>newCell.innerHTML = " "; <br>newCell.innerHTML = (oSheet.Cells(i,4 ).value==""?" ":oSheet.Cells(i,4).value); <br>//newCell.innerHTML = (oSheet. Cells(i,4).value==""?" " :oSheet.Cells(i,4).value); <br>} <br>else if(j==9) <br>{ <br> if(!oSheet.Cells(i,j 1).value) <br>newCell.innerHTML = " "; <br>else if(oSheet.Cells(i,j 1).value=="<30") <br>newCell.innerHTML = "30"; <br>else if(oSheet.Cells(i,j 1).value=="——"||oSheet.Cells(i,j 1).value== --") <br>newCell.innerHTML = " "; <br>else <br>newCell.innerHTML = (oSheet.Cells(i,j 1).value==""?" ":oSheet.Cells(i ,j 1).value); <br>} <br> else <br>{ <br>if(!oSheet.Cells(i,j 1).value) <br>newCell.innerHTML = " "; >else if(oSheet.Cells(i,j 1).value == "<30") <br>newCell.innerHTML = "30"; <br>else if(oSheet.Cells(i,j 1). value=="<DL") <br>newCell.innerHTML = " "; <br>else if(oSheet.Cells(i,j 1).value=="——"||oSheet.Cells(i, j 1).value=="--") <br> newCell.innerHTML = " "; <br>else <br>newCell.innerHTML = (oSheet.Cells(i,j 1).value==""? " ":oSheet.Cells(i,j 1).value) ; <br>} <br>} <br>else <br>{ <br>newCell = newRow.insertCell(j-1);// 1 つだけ少なくても十分です。挿入されるサンプル番号は少なくなります <br>if(j= =0) newCell.innerHTML = (xhnum).toString();//シリアル番号<br>else if(j==1) <br>{ <br>if(!oSheet.Cells(i,1).value) <br>newCell.innerHTML = " "; <br>else if(oSheet.Cells(i,1).value=="——"| |oSheet.Cells(i,1).value=="--" ) <br>newCell.innerHTML = " "; <br>else <br>newCell.innerHTML = (oSheet.Cells(i,1).value ==""?" ":oSheet.Cells(i,1).value); <br>} <br>else if(j==2) <br>{ <br>if(!oSheet.Cells(i) ,2).value) <br>newCell.innerHTML = " "; <br>else if(oSheet.Cells(i,2).value=="——"||oSheet.Cells(i,2).value =="--") <br>newCell.innerHTML = " "; <br>else <br>newCell.innerHTML = (oSheet.Cells(i,2).value==""?" ":oSheet.Cells (i,2).value); <br>//newCell.innerHTML = (oSheet.Cells(i,2).value==""?" ":oSheet.Cells(i,2).value); 🎜>} <br>else if(j==3) <br> { <br>if(!oSheet.Cells(i,4).value) <br>newCell.innerHTML = " " <br>else if (oSheet.Cells(i,4).value=="——" ||oSheet.Cells(i,4).value=="--") <br>newCell.innerHTML = " "; <br>newCell.innerHTML = (oSheet.Cells(i,4).value==""?" ":oSheet.Cells(i,4).value); <br>//newCell.innerHTML = (oSheet. Cells(i,4).value==""?" ":oSheet .Cells(i,4).value); <br>} <br>else if(j==9) <br>{ <br> if(!oSheet.Cells(i,j 1).value) <br>newCell.innerHTML = " "; <br>else if(oSheet.Cells(i,j 1).value=="<30") <br>newCell.innerHTML = "30"; <br>else if( oSheet.Cells(i,j 1).value=="——"||oSheet.Cells(i,j 1).value== --") <br>newCell.innerHTML = " "; <br> else <br>newCell.innerHTML = (oSheet.Cells(i,j 1).value==""?" ":oSheet.Cells(i ,j 1).値);<br>else <br>{ <br>if(!oSheet.Cells(i,j 1).value) <br>newCell.innerHTML = " "; <br>else if(oSheet.Cells(i,j 1).value=="newCell.innerHTML = "30"; <br>else if(oSheet.Cells(i,j 1).value=="<DL") <br>newCell.innerHTML = " "; <br>else if(oSheet.Cells(i,j 1).value=="——"||oSheet.Cells(i,j 1).value=="--") <br>newCell.innerHTML = 「 」; <br>else <br>newCell.innerHTML = (oSheet.Cells(i,j 1).value==""?" ":oSheet.Cells(i,j 1).value); <br>} <br>} <br>} <br>} <br>} <br>////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// <br>newBook.Close(); <br>newBook=null; <br>xls = null; <br>openBg(0);openTS(0); <br>//////////////////////////////开启编辑和保存按钮機能////////// ///////////////////////// <br>OnOrOffBtn(1); <br>///////////////////////////////////////////// //////////////////////////////////////// <br>idTmr = window.setInterval( "クリーンアップ();",1); <br>///////////////////////////////表格数字和文字转化////////// /////////////////////////// <br>TableIntoDatas();////表格数字和文字转化 <br>/// //////////////////////////////////////////////// ////////////////////////////////// <br>} <br> </div> <br>其实做<br> 以上は、Excel モジュール全体に対するいくつかの方法であり、各ビットの前にビートを受信します。 !也欢迎大家来交流交流! <br></span></div>