【发布时间】:2014-03-21 12:51:48
【问题描述】:
我有以下方法最终创建一个 CSV 文件并将该文件作为对客户端请求的响应返回。
如何将列宽更改为自动调整并为行提供替代颜色?
public static void ExportToCSV(DataTable dt, HttpResponseBase response, string filename)
{
response.AddHeader("content-disposition", "attachment; filename=" + filename);
response.ClearContent();
response.ContentType = "application/vnd.ms-excel";
response.Charset = "UTF-8";
response.ContentEncoding = System.Text.Encoding.Unicode;
response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
string tab = "";
foreach (DataColumn dc in dt.Columns)
{
if (!dc.ColumnName.StartsWith("_"))
{
response.Write(tab + dc.ColumnName);
tab = "\t";
}
}
response.Write("\n");
int i;
foreach (DataRow dr in dt.Rows)
{
tab = "";
for (i = 0; i < dt.Columns.Count; i++)
{
if (!dr.Table.Columns[i].ColumnName.StartsWith("_"))
{
response.Write(Utils.StripHTML(tab + dr[i].ToString().Replace("\n", " ").Replace("\t", " ")));
tab = "\t";
}
}
response.Write("\n");
}
response.End();
}
【问题讨论】:
-
您不能对 CSV 格式应用任何格式。
-
这个方法中的什么使它成为 CSV?我不能说。我唯一认识的是
response.ContentType = "application/vnd.ms-excel";。 -
我可以将格式更改为 Excel 然后进行更改吗?
-
无论你做什么都不要使用互操作。您正在这里创建一个制表符分隔的文件。我认为最好的方法是创建一个 XML 格式的 Excel 文件。一种方法是在 Excel 中创建一个示例文件,然后将其保存为所需的 XML 格式。然后看看结构并模仿它。