Hello, I have this code where I create an xlsx file and I need to pre-set the cell width of the xlsx sheet. The actual problem is that when I open excell, I need to double-click the space between columns with the mouse to expand the columns and re-view the hidden data. Is there a way to do this programmatically using Epplus?
using (ExcelPackage p = new ExcelPackage()) { String filepath = "C://StatsYellowPages.csv"; DataSet ds = ExportCSVFileToDataset(filepath, "tblCustomers", "\t"); //Here setting some document properties p.Workbook.Properties.Title = "StatsYellowPages"; //Create a sheet p.Workbook.Worksheets.Add("Sample WorkSheet"); ExcelWorksheet ws = p.Workbook.Worksheets[1]; ws.Name = "StatsYellowPages"; //Setting Sheet name //Merging cells and create a center heading for out table ws.Cells[1, 1].Value = "StatsYellowPages"; ws.Cells[1, 1, 1, ds.Tables[0].Columns.Count].Merge = true; ws.Cells[1, 1, 1, ds.Tables[0].Columns.Count].Style.Font.Bold = true; ws.Cells[1, 1, 1, ds.Tables[0].Columns.Count].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; int colIndex = 1; int rowIndex = 2; foreach (DataColumn dc in ds.Tables[0].Columns) //Creating Headings { var cell = ws.Cells[rowIndex, colIndex]; //Setting the background color of header cells to Gray var fill = cell.Style.Fill; fill.PatternType = ExcelFillStyle.Solid; fill.BackgroundColor.SetColor(Color.Gray); //Setting Top/left,right/bottom borders. var border = cell.Style.Border; border.Bottom.Style = ExcelBorderStyle.Thin; border.Top.Style = ExcelBorderStyle.Thin; border.Left.Style = ExcelBorderStyle.Thin; border.Right.Style = ExcelBorderStyle.Thin; //Setting Heading Value in cell cell.Value = dc.ColumnName; colIndex++; } foreach (DataRow dr in ds.Tables[0].Rows) // Adding Data into rows { colIndex = 1; rowIndex++; foreach (DataColumn dc in ds.Tables[0].Columns) { var cell = ws.Cells[rowIndex, colIndex]; //Setting Value in cell cell.Value = dr[dc.ColumnName].ToString(); //Setting borders of cell var border = cell.Style.Border; colIndex++; } } //Generate A File with Random name Byte[] bin = p.GetAsByteArray(); string file = "c:\\StatsYellowPages.xlsx"; File.WriteAllBytes(file, bin);
themis Feb 01 '12 at 12:55 2012-02-01 12:55
source share