Ik heb een raadpleegscherm en deze gegevens wil ik voor het overzicht naar excel exporteren. Dit is allemaal geen probleem en doe dit volgens onderstaande procedure.
Ik heb en wil geen office (en dus excel) op mijn server anders was mijn probleem zo opgelost.
Wat is het probleem? Ik heb gegevens in een xml of csv bestand staan, maar dit bestand heeft geen opmaak. De gegevens staan op de juiste plek, echter een aantal kolommen moeten nog verbreed worden en een kleurtje voor de header bijvoorbeeld.
Aangezien er geen excel op de server staat kan ik er ook geen macro aan hangen.
Ik wil dus wanneer het bestand gedownload is, dat de opmaak meteen goed is en niet dat ik dan nog een macro moet toevoegen.
Ik loop nu een beetje vast en hoop dat iemand me op weg kan helpen.
Ik heb en wil geen office (en dus excel) op mijn server anders was mijn probleem zo opgelost.
Wat is het probleem? Ik heb gegevens in een xml of csv bestand staan, maar dit bestand heeft geen opmaak. De gegevens staan op de juiste plek, echter een aantal kolommen moeten nog verbreed worden en een kleurtje voor de header bijvoorbeeld.
Aangezien er geen excel op de server staat kan ik er ook geen macro aan hangen.
Ik wil dus wanneer het bestand gedownload is, dat de opmaak meteen goed is en niet dat ik dan nog een macro moet toevoegen.
Ik loop nu een beetje vast en hoop dat iemand me op weg kan helpen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| public static void ExportCSV (System.Data.DataSet ds, System.Web.UI.Page pagina)
{
System.IO.StringWriter sw = new System.IO.StringWriter ();
for (int tablenr = 0 ; tablenr < ds.Tables.Count ; tablenr++)
{
System.Data.DataTable dt = new System.Data.DataTable();
dt = ds.Tables[tablenr];
string header = "";
for (int column = 0 ; column < dt.Columns.Count ; column ++)
{
header += dt.Columns[column].ColumnName + csvsep;
}
sw.WriteLine(header);
string regel = "";
for (int row = 0 ; row < dt.Rows.Count ; row ++)
{
regel = "";
for (int column = 0 ; column < dt.Columns.Count ; column ++)
{
if (dt.Columns[column].DataType.ToString().IndexOf("System.Single") != -1 || dt.Columns[column].DataType.ToString().IndexOf("System.Int") != -1 ||dt.Columns[column].DataType.ToString().IndexOf("System.Decimal") != -1)
{
regel += dt.Rows[row][column].ToString().Replace(".","").Replace(",",".") + csvsep;
}
else
{
regel += dt.Rows[row][column].ToString() + csvsep;
}
}
sw.WriteLine(regel);
}
}
sw.Close();
string filename = new System.Random().Next().ToString() + ".xls";
string exportfile = pagina.MapPath("downloads/"+filename);
System.IO.FileStream fs = new System.IO.FileStream(exportfile,System.IO.FileMode.Create);
byte[] bytearray = System.Text.Encoding.ASCII.GetBytes(sw.ToString());
fs.Write(bytearray,0,bytearray.Length);
fs.Close();
DownloadFile (BepaalVirtualDownloadFolder(pagina)+filename,pagina);
} |