Hi I am exporting database to excel with below method as
Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=" + FileName); Response.ContentType = "application/vnd.ms-excel"; EnableViewState = false; Response.Write("<style> TABLE { border:dotted 1px #999; } TH { border:dotted 1px #D5D5D5; text-align:center } TD { border:dotted 1px #D5D5D5; } </style>"); Response.Write("<table>"); Response.Write("<tr>"); Response.Write("<th>Actual Estimated Price</th>"); Response.Write("<th>Aprroved Estimated Price </th>"); Response.Write("<th>Actual Price</th>"); Response.Write("<th>Aprroved Actual Price </th>"); Response.Write("<th>TransactionID </th>"); Response.Write("<th>Created On</th>"); Response.Write("</tr>"); foreach (DataRow dr in dt.Rows) { Response.Write("<tr>"); Response.Write("<td>"); Response.Write(String.Format("{0:0.0#}", dr["EstimatedPriceTotal"].ToString())); Response.Write("</td>"); Response.Write("<td>"); Response.Write(String.Format("{0:0.0#}", dr["ApprovedEstimatedPriceTotal"].ToString())); Response.Write("</td>"); Response.Write("<td>"); Response.Write(String.Format("{0:0.0#}", dr["ActualPriceTotal"].ToString())); Response.Write("</td>"); Response.Write("<td>"); Response.Write(String.Format("{0:0.0#}", dr["ApprovedActualPriceTotal"].ToString())); Response.Write("</td>"); Response.Write("<td>"); Response.Write(dr["TransactionID"].ToString()); Response.Write("</td>"); Response.Write("<td>"); Response.Write(Convert.ToDateTime(dr["CreatedOn"].ToString())); Response.Write("</td>"); Response.Write("</tr>"); } Response.Write("</table>"); Response.End();
but I am not able to export Actual Estimated Price, Aprroved Estimated Price in excel as decimal format
The value is coming as 5 instead of showing 5.00
How can I format some column of excel to decimal format from c# side
Update
How can I merge column header merge in EPPPlus
I want both header name as
CustomerName Mitesh Jain
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Here you go, one complete method. Just send a DataTable and a file name and this does the rest. This snippet will also make the header row gray with bold text and will auto fit the columns.
using OfficeOpenXml; using OfficeOpenXml.Style; public void ExportToExcel(DataTable dt, string FileName) { //create a new byte array byte[] bin; //create a new excel document using (ExcelPackage excelPackage = new ExcelPackage()) { //create a new worksheet ExcelWorksheet ws = excelPackage.Workbook.Worksheets.Add(FileName); //add the contents of the datatable to the excel file ws.Cells["A1"].LoadFromDataTable(dt, true); //auto fix the columns ws.Cells[ws.Dimension.Address].AutoFitColumns(); //loop all the columns for (int col = 1; col <= ws.Dimension.End.Column; col++) { //make all columns just a bit wider, it would sometimes not fit ws.Column(col).Width = ws.Column(col).Width + 1; var cell = ws.Cells[1, col]; //make the text bold cell.Style.Font.Bold = true; //make the background of the cell gray var fill = cell.Style.Fill; fill.PatternType = ExcelFillStyle.Solid; fill.BackgroundColor.SetColor(ColorTranslator.FromHtml("#BFBFBF")); //make the header text upper case cell.Value = ((string)cell.Value).ToUpper(); } //convert the excel package to a byte array bin = excelPackage.GetAsByteArray(); } //clear the buffer stream Response.ClearHeaders(); Response.Clear(); Response.Buffer = true; //set the correct contenttype Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; //set the correct length of the data being send Response.AddHeader("content-length", bin.Length.ToString()); //set the filename for the excel package Response.AddHeader("content-disposition", "attachment; filename="" + FileName + ".xlsx""); //send the byte array to the browser Response.OutputStream.Write(bin, 0, bin.Length); //cleanup Response.Flush(); HttpContext.Current.ApplicationInstance.CompleteRequest(); }
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0