Sfatiamo subito un mito da DataGridView a Excel 2007 non si può fare utilizzando un metodo semplice facile e veloce. L'unica è agire tramite la creazione di un oggetto.
Questo perchè ? Excel.xslx non è in realtà un file ma un insieme di file il che comporta una serie di difficoltà.
Tuttavia è possibile effettuare una conversione diretta o quasi da DataGridView a Excel 97-2003.
Di metodi ce ne sono davvero tanti e tutti più o meno equivalenti.
Quello che vi propongo è più o meno semplice.
Vi serve specificare lo schema :
<
html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40"
>
Vi serve specifica nel tag head
<%
Response.ContentType = "application/vnd.ms-excel";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.AddHeader("Content-Disposition", "inline;filename=File.xls");
%>
Dove file.xls è il nome del vostro file...
Fatto questo potete pure sbizzarrirvi con i fogli di stile stando però attenti a speficare ad esempio :
.tableEx
{
border: 1px solid #c0504d;
}
.thEx
{
background:#1f497d;
color: white;
font-family: Tahoma,verdana,arial;
font-size: 11px;
line-height: 30px;
border: 1px solid #1f497d !important;
}
.tdEx
{
color: black;
font-family: Tahoma,verdana,arial;
font-size: 11px;
border: 1px solid #c0504d;
}
HeaderStyle-CssClass="thEx" ItemStyle-CssClass="tdEx"
Come questi debbano lavorare con la tabella. Basta un nulla che il tutto si compromette.