private void write_read_to_template() { string Q_TEMPLATEPROC = "exec USP_EXPORTEXCEL_LISTPROCEDURE @1 "; string Q_TEMPLATEDETAIL = "exec USP_EXPORTEXCEL_LISTDETAIL @1, @2 "; string xtpl = "CALC"; string appid = reffnumber.Text.Trim(); string resultPath = Server.MapPath("../Templates/Download"); string resultFilename = appid + ".xls"; string resultFullpath = resultPath + "/" + resultFilename; string tplFile = Server.MapPath("../Templates/Master/LoanCalculator.xlt"); if (!Directory.Exists(resultPath)) { Directory.CreateDirectory(resultPath); } if (File.Exists(resultFullpath)) { File.Delete(resultFullpath); } xExcel objExcel = new xExcel(); Microsoft.Office.Interop.Excel.Range objCell; objExcel.OpenFile(tplFile, ""); #region Fill Data object[] parproc = new object[1] { xtpl }; DataTable dt_proc = conn.GetDataTable(Q_TEMPLATEPROC, parproc, dbtimeout); for (int k = 0; k < dt_proc.Rows.Count; k++) { int procseq = (int)dt_proc.Rows[k]["proc_seq"]; string procname = dt_proc.Rows[k]["proc_name"].ToString(); object[] pardet = new object[2] { xtpl, procseq }; DataTable dt_field = conn.GetDataTable(Q_TEMPLATEDETAIL, pardet, dbtimeout); DataTable dt_data = conn.GetDataTable("EXEC " + procname + " '" + appid + "'", null, dbtimeout); if (dt_data.Rows.Count > 0) { for (int i = 0; i < dt_field.Rows.Count; i++) { try { string SheetNm = dt_field.Rows[i]["sheet"].ToString(); int col = (int)dt_field.Rows[i]["col"]; int row = (int)dt_field.Rows[i]["row"]; string Field = dt_field.Rows[i]["field"].ToString(); object objValue = dt_data.Rows[0][Field].ToString(); string strObject = objValue.ToString(); objExcel.excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)objExcel.excelSheets[SheetNm]; objCell = (Microsoft.Office.Interop.Excel.Range)objExcel.excelWorksheet.Cells[row, col]; objCell.Value2 = objValue; } catch (Exception e2) { ModuleSupport.LogError(this.Page, e2); } } } } #endregion #region write lending data write_lending_toexcel(reffnumber.Text.Trim(), "CC", 15, objExcel); write_lending_toexcel(reffnumber.Text.Trim(), "UL", 48, objExcel); write_lending_toexcel(reffnumber.Text.Trim(), "SL", 66, objExcel); write_lending_toexcel(reffnumber.Text.Trim(), "MKI", 89, objExcel); write_lending_toexcel(reffnumber.Text.Trim(), "INV", 107, objExcel); write_lending_toexcel(reffnumber.Text.Trim(), "PRK", 120, objExcel); #endregion #region read from excel double iue, tue, tot_monthly_installment, mue1, mue2, income_multiplier1, income_multiplier2, max_dbr1, max_dbr2, dbr_actual, proposal_limit, installment, max_installment; string estimated_cost, final_recommendation, incomeexpense_result; NameValueCollection key = new NameValueCollection(); staticFramework.saveNVC(key, reffnumber); NameValueCollection Fields = new NameValueCollection(); iue = read_excel_cell_numeric(133, 3, objExcel); staticFramework.saveNVC(Fields, "iue", iue); tue = read_excel_cell_numeric(133, 14, objExcel); staticFramework.saveNVC(Fields, "tue", tue); tot_monthly_installment = read_excel_cell_numeric(133, 20, objExcel); staticFramework.saveNVC(Fields, "tot_monthly_installment", tot_monthly_installment); //mue1 = read_excel_cell_numeric(168, 14, objExcel); staticFramework.saveNVC(Fields, "mue1", mue1); //mue2 = read_excel_cell_numeric(168, 17, objExcel); staticFramework.saveNVC(Fields, "mue2", mue2); //income_multiplier1 = read_excel_cell_numeric(169, 14, objExcel); staticFramework.saveNVC(Fields, "income_multiplier1", income_multiplier1); //income_multiplier2 = read_excel_cell_numeric(169, 17, objExcel); staticFramework.saveNVC(Fields, "income_multiplier2", income_multiplier2); max_dbr1 = read_excel_cell_numeric(180, 8, objExcel); staticFramework.saveNVC(Fields, "max_dbr1", max_dbr1); //max_dbr2 = read_excel_cell_numeric(170, 17, objExcel); staticFramework.saveNVC(Fields, "max_dbr2", max_dbr2); dbr_actual = read_excel_cell_numeric(180, 17, objExcel); staticFramework.saveNVC(Fields, "dbr_actual", dbr_actual); proposal_limit = read_excel_cell_numeric(176, 22, objExcel); staticFramework.saveNVC(Fields, "proposal_limit", proposal_limit); max_installment = read_excel_cell_numeric(177, 22, objExcel); staticFramework.saveNVC(Fields, "max_installment", max_installment); installment = read_excel_cell_numeric(177, 17, objExcel); staticFramework.saveNVC(Fields, "installment", installment); estimated_cost = read_excel_cell_string(179, 8, objExcel); staticFramework.saveNVC(Fields, "estimated_cost", estimated_cost); try { estimated_cost = read_excel_cell_numeric(179, 8, objExcel).ToString(); staticFramework.saveNVC(Fields, "estimated_cost", estimated_cost); } catch {} incomeexpense_result = read_excel_cell_string(180, 22, objExcel); staticFramework.saveNVC(Fields, "incomeexpense_result", incomeexpense_result); final_recommendation = read_excel_cell_string(183, 8, objExcel); staticFramework.saveNVC(Fields, "final_recommendation", final_recommendation); staticFramework.save(Fields, key, "appfincal_summary", conn); double highest_limitcc_mob06, highest_limitcc_mob12, lowest_limitcc_mob06, lowest_limitcc_mob12; string bic_result_temp; Fields.Clear(); highest_limitcc_mob06 = read_excel_cell_numeric(163, 14, objExcel); staticFramework.saveNVC(Fields, "highest_limitcc_mob06", highest_limitcc_mob06); highest_limitcc_mob12 = read_excel_cell_numeric(163, 22, objExcel); staticFramework.saveNVC(Fields, "highest_limitcc_mob12", highest_limitcc_mob12); lowest_limitcc_mob06 = read_excel_cell_numeric(164, 14, objExcel); staticFramework.saveNVC(Fields, "lowest_limitcc_mob06", lowest_limitcc_mob06); lowest_limitcc_mob12 = read_excel_cell_numeric(164, 22, objExcel); staticFramework.saveNVC(Fields, "lowest_limitcc_mob12", lowest_limitcc_mob12); bic_result_temp = read_excel_cell_string(166, 14, objExcel); staticFramework.saveNVC(Fields, "bic_result_temp", bic_result_temp); staticFramework.save(Fields, key, "appfincal_bicsummary", conn); try { objExcel.CloseFile(resultFullpath); objExcel.stopExcel(); } catch (Exception e3) { ModuleSupport.LogError(this.Page, e3); try { objExcel.CloseFile(); objExcel.stopExcel(); } catch { } } #endregion }
private string CreateExcel(string xtpl, string regno, string var_user) { string mStatus = "Template parameter not set!"; bool bSukses = true; /// Mengambil application root string path_in = SvrTplPhysic; string path_out = SvrPathPhysic; string file_xlt = xtpl + ".XLT"; string fileNm = xtpl + "-" + regno + ".XLS"; /// Cek apakah file templatenya (input) ada atau tidak if (!File.Exists(path_in + file_xlt)) { throw new Exception("File Template tidak ada!"); } /// Cek direktori untuk menyimpan file hasil export (output) if (!Directory.Exists(path_out)) { Directory.CreateDirectory(path_out); } /// Cek file untuk menyimpan file hasil export (output) if (File.Exists(path_out + fileNm)) { File.Delete(path_out + fileNm); } // rony's excel object variables xExcel objExcel = new xExcel(); objExcel.OpenFile(path_in + file_xlt, ""); #region Fill Data object[] parproc = new object[1] { xtpl }; DataTable dt_proc = conn.GetDataTable(Q_TEMPLATEPROC, parproc, dbtimeout); for (int k = 0; k < dt_proc.Rows.Count; k++) { int procseq = (int)dt_proc.Rows[k]["PROC_SEQ"]; string procname = dt_proc.Rows[k]["PROC_NAME"].ToString(); object[] pardet = new object[2] { xtpl, procseq }; DataTable dt_field = conn.GetDataTable(Q_TEMPLATEDETAIL, pardet, dbtimeout); DataTable dt_data = conn.GetDataTable("EXEC " + procname + " '" + regno + "'", null, dbtimeout); if (dt_data.Rows.Count > 0) { for (int i = 0; i < dt_field.Rows.Count; i++) { try { string SheetNm = dt_field.Rows[i]["SHEET"].ToString(); int col = (int)dt_field.Rows[i]["COL"]; int row = (int)dt_field.Rows[i]["ROW"]; string Field = dt_field.Rows[i]["FIELD"].ToString(); object objValue = dt_data.Rows[0][Field].ToString(); string strObject = objValue.ToString(); objExcel.excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)objExcel.excelSheets[0]; Microsoft.Office.Interop.Excel.Range objCell = (Microsoft.Office.Interop.Excel.Range)objExcel.excelWorksheet.Cells[row, col]; objCell.Value2 = objValue; } catch (Exception e2) { mStatus = "Terjadi error saat mengisi data"; ModuleSupport.LogError(this.Page, e2); } } } } #endregion try { objExcel.CloseFile(path_out + fileNm); objExcel.stopExcel(); mStatus = "Pembuatan File Berhasil"; } catch (Exception e3) { ModuleSupport.LogError(this.Page, e3); mStatus = "Pembuatan File Gagal"; try { objExcel.CloseFile(); objExcel.stopExcel(); } catch { } } return(mStatus); }