代码扩展在Excel中的列

当我将数据导出到excel时,它加载列但不扩展列。 它显示的数据,而不必双击行来展开列。 我可以写一些自动调整列的代码,以便单元格可以显示整个数据吗? 我正在使用asp.net和c#。

第一张照片是目前的样子,第二张照片显示了我想要的样子。

它看起来像什么

我想要它看起来像

protected void Button1_Click(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; DataSet dataSet = new DataSet(); SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ISALog1ConnectionString"].ToString()); SqlCommand cmd = new SqlCommand("exec ProxyReport", conn); cmd.CommandTimeout = 200; SqlDataAdapter ad = new SqlDataAdapter(cmd); ad.Fill(dataSet); GridView1.DataSource = dataSet.Tables[0]; GridView1.DataBind(); GridView2.DataSource = dataSet.Tables[1]; GridView2.DataBind(); GridView3.DataSource = dataSet.Tables[2]; GridView3.DataBind(); dataSet.Tables[0].TableName = "1"; dataSet.Tables[1].TableName = "2"; dataSet.Tables[2].TableName = "3"; int count = 3; ExcelPackage pack = new ExcelPackage(); for (int i = 1; i <= count; i++) { DataTable table = dataSet.Tables[i.ToString()]; ExcelWorksheet ws = pack.Workbook.Worksheets.Add("Top" + i); ws.Cells["A1"].LoadFromDataTable(table, true); } Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=ExcelExport.xlsx"); Response.BinaryWrite(pack.GetAsByteArray()); Response.Flush(); Response.End(); } 

 Excel.Range range; range = ws.get_Range("A1", "1"); range.AutoFit(); 

MSDN

看起来像BestFit属性是你想要的,虽然它可能是越野车:

http://excelpackage.codeplex.com/discussions/248406/

我正在寻找同样的问题的解决scheme。 上面的检查答案不直接为我工作。

它与一个简单的补充:

 Excel.Range range; range = ws.get_Range("A1", "1"); range.Columns. AutoFit();