diff --git a/Controllers/ApiController.cs b/Controllers/ApiController.cs index 6193fe5a..9b880847 100644 --- a/Controllers/ApiController.cs +++ b/Controllers/ApiController.cs @@ -127,24 +127,44 @@ namespace QuotationMaker.Controllers row = (XSSFRow)sheet.GetRow(5); row.Cells[0].SetCellValue(row.Cells[0].StringCellValue.Replace("{date_range}", startDateStr + " 至 " + endDateStr)); + // Copy style from old cell and apply to new cell + XSSFCellStyle copyTempCellStyle = (XSSFCellStyle)workbook.CreateCellStyle(); + + //估價單總價項目 row = (XSSFRow)sheet.GetRow(11); - row.Cells[6].SetCellValue(row.Cells[6].StringCellValue.Replace("{quotation_noTaxTotal}", objDetail.quotation_noTaxTotal.ToString("###,###"))); + copyTempCellStyle.CloneStyleFrom(row.Cells[6].CellStyle); + copyTempCellStyle.DataFormat = workbook.CreateDataFormat().GetFormat("\"NTD \"#,##0"); + row.Cells[6].SetCellType(CellType.Numeric); + row.Cells[6].SetCellValue(objDetail.quotation_noTaxTotal); + row.Cells[6].CellStyle = copyTempCellStyle; + row = (XSSFRow)sheet.GetRow(12); - string quotation_specTotal = ""; + //string quotation_specTotal = ""; if (objDetail.quotation_specTotal > 0) { - quotation_specTotal = objDetail.quotation_specTotal.ToString("###,###"); + row.Cells[6].SetCellType(CellType.Numeric); + row.Cells[6].SetCellValue(objDetail.quotation_specTotal); + row.Cells[6].CellStyle = copyTempCellStyle; + } else { + row.Cells[6].SetCellValue(""); } - row.Cells[6].SetCellValue(row.Cells[6].StringCellValue.Replace("{quotation_specTotal}", quotation_specTotal)); + + //row.Cells[6].SetCellValue(row.Cells[6].StringCellValue.Replace("{quotation_specTotal}", quotation_specTotal)); row = (XSSFRow)sheet.GetRow(13); - row.Cells[6].SetCellValue(row.Cells[6].StringCellValue.Replace("{quotation_tax}", objDetail.quotation_tax.ToString("###,###"))); + //row.Cells[6].SetCellValue(row.Cells[6].StringCellValue.Replace("{quotation_tax}", objDetail.quotation_tax.ToString("###,###"))); + row.Cells[6].SetCellType(CellType.Numeric); + row.Cells[6].SetCellValue(objDetail.quotation_tax); + row.Cells[6].CellStyle = copyTempCellStyle; row = (XSSFRow)sheet.GetRow(14); - row.Cells[6].SetCellValue(row.Cells[6].StringCellValue.Replace("{quotation_grandTotal}", objDetail.quotation_grandTotal.ToString("###,###"))); + //row.Cells[6].SetCellValue(row.Cells[6].StringCellValue.Replace("{quotation_grandTotal}", objDetail.quotation_grandTotal.ToString("###,###"))); + row.Cells[6].SetCellType(CellType.Numeric); + row.Cells[6].SetCellValue(objDetail.quotation_grandTotal); + row.Cells[6].CellStyle = copyTempCellStyle; //服務協議 string services_aggrement = objDetail.quotation_sa; @@ -200,7 +220,10 @@ namespace QuotationMaker.Controllers row.Cells[3].SetCellValue(objDetail.invoices[i - 1].invoice_name); row.Cells[4].SetCellValue(objDetail.invoices[i - 1].invoice_year.ToString() + "/" + objDetail.invoices[i - 1].invoice_month.ToString().PadLeft(2, '0')); - row.Cells[6].SetCellValue("$NT" + objDetail.invoices[i - 1].invoice_noTaxMoney.ToString("###,###")); + //row.Cells[6].SetCellValue("$NT" + objDetail.invoices[i - 1].invoice_noTaxMoney.ToString("###,###")); + row.Cells[6].SetCellType(CellType.Numeric); + row.Cells[6].SetCellValue(objDetail.invoices[i - 1].invoice_noTaxMoney); + row.Cells[6].CellStyle = copyTempCellStyle; } } @@ -279,10 +302,26 @@ namespace QuotationMaker.Controllers row.Height = -1; row.Cells[1].SetCellValue(objSub.quotationSubItem_name); row.Cells[2].SetCellValue(descript); - row.Cells[3].SetCellValue("NTD " + objSub.quotationSubItem_price.ToString("###,###")); - row.Cells[4].SetCellValue(objSub.quotationSubItem_number.ToString("###,###")); + + row.Cells[3].SetCellType(CellType.Numeric); + row.Cells[3].SetCellValue(objSub.quotationSubItem_price); + row.Cells[3].CellStyle = copyTempCellStyle; + + row.Cells[4].SetCellType(CellType.Numeric); + row.Cells[4].SetCellValue(objSub.quotationSubItem_number); + row.Cells[4].CellStyle = copyTempCellStyle; + row.Cells[5].SetCellValue(objSub.quotationSubItem_unitType); + + + row.Cells[6].SetCellType(CellType.Numeric); row.Cells[6].SetCellValue(objSub.quotationSubItem_subTotal); + row.Cells[6].CellStyle = copyTempCellStyle; + + //row.Cells[3].SetCellValue("NTD " + objSub.quotationSubItem_price.ToString("###,###")); + //row.Cells[4].SetCellValue(objSub.quotationSubItem_number.ToString("###,###")); + //row.Cells[5].SetCellValue(objSub.quotationSubItem_unitType); + //row.Cells[6].SetCellValue(objSub.quotationSubItem_subTotal); if (objSub.quotationSubItem_hasAC == "Y") { acTotal += (int)Math.Round((objSub.quotationSubItem_price * objSub.quotationSubItem_number) * (objMain.quotationMainItem_ac / 100)); @@ -304,8 +343,10 @@ namespace QuotationMaker.Controllers CopyRow((XSSFWorkbook)workbook, (XSSFSheet)sheet, subTotalIndex, editIndex); row = (XSSFRow)sheet.GetRow(editIndex); - row.Cells[6].SetCellValue("NTD " + (objMain.quotationMainItem_subTotal - acTotal).ToString("###,###")); - + //row.Cells[6].SetCellValue("NTD " + (objMain.quotationMainItem_subTotal - acTotal).ToString("###,###")); + row.Cells[6].SetCellType(CellType.Numeric); + row.Cells[6].SetCellValue((objMain.quotationMainItem_subTotal - acTotal)); + row.Cells[6].CellStyle = copyTempCellStyle; rowCount++; @@ -315,7 +356,10 @@ namespace QuotationMaker.Controllers CopyRow((XSSFWorkbook)workbook, (XSSFSheet)sheet, acIndex, editIndex); row = (XSSFRow)sheet.GetRow(editIndex); - row.Cells[6].SetCellValue("NTD " + acTotal.ToString("###,###")); + //row.Cells[6].SetCellValue("NTD " + acTotal.ToString("###,###")); + row.Cells[6].SetCellType(CellType.Numeric); + row.Cells[6].SetCellValue(acTotal); + row.Cells[6].CellStyle = copyTempCellStyle; row.Cells[0].SetCellValue(row.Cells[0].StringCellValue.Replace("{quotationMainItem_ac}", objMain.quotationMainItem_ac.ToString())); rowCount++; @@ -325,8 +369,10 @@ namespace QuotationMaker.Controllers //複製此項目總金額欄 CopyRow((XSSFWorkbook)workbook, (XSSFSheet)sheet, sutTotalAcIndex, editIndex); row = (XSSFRow)sheet.GetRow(editIndex); - row.Cells[6].SetCellValue("NTD " + (objMain.quotationMainItem_subTotal).ToString("###,###")); - + //row.Cells[6].SetCellValue("NTD " + (objMain.quotationMainItem_subTotal).ToString("###,###")); + row.Cells[6].SetCellType(CellType.Numeric); + row.Cells[6].SetCellValue(objMain.quotationMainItem_subTotal); + row.Cells[6].CellStyle = copyTempCellStyle; rowCount++; editRowIndex++; //break; @@ -384,7 +430,7 @@ namespace QuotationMaker.Controllers row.Height = 8190; row = (XSSFRow)sheet.GetRow(saRowIndex + 2); - row.Height = 4000; + row.Height = 8000; MemoryStream ms = new MemoryStream(); workbook.Write(ms); @@ -398,10 +444,10 @@ namespace QuotationMaker.Controllers string agent = Request.Headers["User-Agent"].ToString(); - if (agent.Contains("Macintosh")) - { - downloadName = HttpUtility.UrlEncode(downloadName, Encoding.UTF8); - } + //if (agent.Contains("Macintosh")) + //{ + // downloadName = HttpUtility.UrlEncode(downloadName, Encoding.UTF8); + //} return File(newStream, "application/vnd.ms-excel", downloadName + ".xlsx"); @@ -460,7 +506,7 @@ namespace QuotationMaker.Controllers // Copy style from old cell and apply to new cell XSSFCellStyle newCellStyle = (XSSFCellStyle)workbook.CreateCellStyle(); - newCellStyle.CloneStyleFrom(oldCell.CellStyle); ; + newCellStyle.CloneStyleFrom(oldCell.CellStyle); newCell.CellStyle = newCellStyle; // If there is a cell comment, copy diff --git a/wwwroot/logo/bremen_temp.xlsx b/wwwroot/logo/bremen_temp.xlsx index 09a67629..d149a887 100644 Binary files a/wwwroot/logo/bremen_temp.xlsx and b/wwwroot/logo/bremen_temp.xlsx differ