protected virtual void AfterExport(string startTime) { //TODO:檢查輸出筆數為0則不轉出 //if (ids_1.rowcount() == 0) { // messagebox(gs_t_err, "轉出筆數為0!", StopSign!); // return; //} //TODO: export to excel //ids_1.SaveAs(is_save_file, Excel!, ib_title); //Write LOGF if (PbFunc.f_write_logf(gs_txn_id, "E", "轉出檔案:" + is_save_file) < 0) { return; } string finishTime = DateTime.Now.ToString("HH:mm:ss"); MessageDisplay.Info("轉檔完成!", gs_t_result + " " + startTime + " ~ " + finishTime); }
/// <summary> /// 根據報表類型,轉出excel (其實三張報表都輸出到同一份excel) /// </summary> /// <param name="sheetNo"></param> /// <param name="reportType"></param> /// <param name="ls_rpt_name">sheet標題中文</param> /// <param name="rowTotalCount">空白行的筆數</param> /// <param name="startRowIndex">起始插入資料的row index</param> /// <param name="startDate">根據reportType傳入[起始年月]或[起始年月日]</param> /// <param name="endDate">根據reportType傳入[結束年月]或[結束年月日]</param> /// <returns></returns> protected bool wf_Export(Workbook workbook, SheetNo sheetNo, ReportType reportType, string ls_rpt_name, int rowTotalCount, int startRowIndex, DateTime startDate, DateTime endDate) { try { string tmpStart = (reportType == ReportType.mon ? startDate.ToString("yyyy/MM") : startDate.ToString("yyyy/MM/dd")); string tmpEnd = (reportType == ReportType.mon ? endDate.ToString("yyyy/MM") : endDate.ToString("yyyy/MM/dd")); //1.讀取資料 DataTable dtTemp = new DataTable(); switch (reportType) { case ReportType.mon: dtTemp = dao95140.ListMonth(startDate.ToString("yyyyMM"), endDate.ToString("yyyyMM")); break; case ReportType.date: dtTemp = dao95140.ListDateFcm(startDate.ToString("yyyyMMdd"), endDate.ToString("yyyyMMdd")); break; case ReportType.detail: dtTemp = dao95140.ListDateAcc(startDate.ToString("yyyyMMdd"), endDate.ToString("yyyyMMdd")); break; } //1.1 check row count if (dtTemp.Rows.Count == 0) { MessageDisplay.Info(string.Format("{0},{1},無任何資料!", tmpStart + "~" + tmpEnd, _ProgramID + "-" + ls_rpt_name)); return(false); } //2.切換Sheet Worksheet sheet1 = workbook.Worksheets[(int)sheetNo]; //2.1 設定標題 string titleDateDesc = ""; if (startDate == endDate) { titleDateDesc = tmpStart; } else { titleDateDesc = tmpStart + "~" + tmpEnd; } sheet1.Cells[0, 0].Value = titleDateDesc + sheet1.Cells[0, 0].Value; //3.匯出資料(因為單純輸出dataTable,可直接用函數sheet.Import(DataTable,isNeedTitle,rowIndex,colIndex) sheet1.Import(dtTemp, false, startRowIndex, 0); //4.刪除空白列 if (dtTemp.Rows.Count <= rowTotalCount) { sheet1.Rows.Remove(startRowIndex + dtTemp.Rows.Count, rowTotalCount - dtTemp.Rows.Count); } //4.1 把指標移到[A1] sheet1.Range["A1"].Select(); sheet1.ScrollToRow(0); return(true); } catch (Exception ex) { PbFunc.f_write_logf(_ProgramID, "error", ex.Message); return(false); } }