Je dois exporter un gridview pour exceler, je mets le code html de retour du gridview à un HtmlTextWriter et le mets dans la réponse. Le fichier de résultat fonctionne très bien en Excel, Excel peut analyser le HTML et le résultat est lisible, fonctionne parfaitement sur Excel 2003 et 2007, mais dans certaines machines Excel 2003 (MACOS) Excel montre uniquement le code html brut et peut Ne traitez pas ce code html.Excel 2008 Cant Parse HTML
Une idée pour configurer Excel?
Voici le code à convertir:
public static void ToExcel(GridView gridView, string fileName)
{
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.Buffer = true;
fileName = fileName.Replace(".xls", string.Empty) + ".xls";
response.AddHeader("content-disposition",
"attachment;filename=" + fileName);
response.Charset = "";
response.ContentEncoding = Encoding.Unicode;
response.BinaryWrite(Encoding.Unicode.GetPreamble());
response.ContentType = MimeTypes.GetContentType(fileName);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
gridView.AllowPaging = false;
//gridView.DataBind();
//Change the Header Row back to white color
gridView.HeaderRow.Style.Add("background-color", "#FFFFFF");
//Apply style to Individual Cells
for (int i = 0; i < gridView.HeaderRow.Cells.Count; i++)
{
gridView.HeaderRow.Cells[i].Style.Add("background-color", "yellow");
}
for (int i = 0; i < gridView.Rows.Count; i++)
{
GridViewRow row = gridView.Rows[i];
//Change Color back to white
row.BackColor = System.Drawing.Color.White;
//Apply text style to each Row
row.Attributes.Add("class", "textmode");
//Apply style to Individual Cells of Alternating Row
if (i % 2 != 0)
{
for (int j = 0; j < row.Cells.Count; j++)
{
row.Cells[j].Style.Add("background-color", "#C2D69B");
}
}
}
gridView.RenderControl(hw);
//style to format numbers to string
string style = @"<style> .textmode { mso-number-format:\@; } </style>";
response.Write(style);
response.Output.Write(sw.ToString());
response.Flush();
response.End();
}
Essayez une plus grande quantité de programmes d'échantillonnage qui ingèrent ce code HTML. OpenOffice.org serait mon premier candidat test. – Broam
@Broam comment cela aide-t-il un problème Excel Mac OS? – btlog
@btlog Excel/Mac est encore assez différent d'Excel/Windows, jusqu'à la dernière version. Je me demande si le code d'importation HTML est étouffant dans la version Mac. Voir si un autre programme aime le HTML serait de savoir si le problème est Excel/Windows est trop libéral, ou Excel/Mac est trop stricte. – Broam