C# 在excel中展开列的代码

C# 在excel中展开列的代码,c#,asp.net,excel,export,C#,Asp.net,Excel,Export,当我将数据导出到excel时,它会加载列,但不会展开列。它显示数据,而无需双击该行以展开列。我可以写一些自动调整列的代码,以便单元格可以显示整个数据吗?我正在使用asp.net和c 第一张图片是它当前的样子&第二张显示了我想要它的样子 protected void Button1_Click(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; DataSet dataSet =

当我将数据导出到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();
  }

受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
Response.Clear();
Response.Buffer=true;
数据集=新数据集();
SqlConnection conn=新的SqlConnection(ConfigurationManager.ConnectionString[“ISALog1ConnectionString”].ToString());
SqlCommand cmd=新的SqlCommand(“exec ProxyReport”,conn);
cmd.CommandTimeout=200;
SqlDataAdapter ad=新的SqlDataAdapter(cmd);
ad.Fill(数据集);
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”;
整数计数=3;
ExcelPackage pack=新的ExcelPackage();

for(int i=1;i看起来最佳拟合属性就是您想要的,尽管它可能有缺陷:


我一直在寻找解决同一问题的方法。 上面的核对答案对我来说并不直接有效

它使用了一个简单的添加:

Excel.Range range;

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

@云,恐怕我不知道是什么epplus@Cloudye-sit将在ePlus中工作查看页面底部的链接谢谢,现在很忙,但我相信一旦我查看它,它就会工作:)这应该是对相关答案的评论,因为大部分答案都来自于此。你肯定是对的@Fjodr。但是我没有足够的声誉来评论国外的答案。对不起。
Excel.Range range;

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