单元格填充不起作用

时间:2016-05-19 19:12:46

标签: c# asp.net asp.net-mvc

我正在使用 GridView 将表格导出到Excel。

我在控制器中有这个:

GridView gv = new GridView();

gv.DataSource = lstExportedExcel.ToList(); // lstExportedExcel does have stuff in it
gv.DataBind();

gv.HeaderRow.Cells[0].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[1].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[2].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[3].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[4].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[5].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[6].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[7].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[8].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[9].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[10].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[11].BackColor = System.Drawing.Color.LightCyan;
gv.HeaderRow.Cells[12].BackColor = System.Drawing.Color.LightCyan;

gv.CellPadding = 10; //doesn't work

Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename=DailySummaryExport.xls");
Response.ContentType = "application/ms-excel";
Response.Charset = "";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();

我已经对此进行了研究,很多解决方案都在前端上,但我该如何使其工作?当我打开Excel电子表格时,每个单元格中的文本都没有从默认边框获取填充。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在这里盲目工作,但请试一试:

添加到您的样式表:

select * from table where key in (1,2,6,3,2,4,8)

然后在代码中动态设置类:

.gv tr th
{
    padding: 10px;
}

.gv tr td
{
    padding: 10px;
}

根据documentation

" GridView控件的同一列中的所有单元格具有相同的宽度。填充量应用于最宽的单元格,列中的所有其他单元格具有此单元格宽度。类似地,同一行中的所有单元格具有相同的高度。填充量应用于行中的最高单元格,行中的所有其他单元格都具有此单元格高度。不能指定单个单元格大小。"