2013-02-28 13 views
5

Mam ten kod, aby wyodrębnić stolik do komputera w pliku XLS:Jak zrobić prawdziwy plik XLS na asp.net C#?

// I have a string which contains HTML table codes, named as excelTable 

HttpResponse response = HttpContext.Current.Response; 
response.Clear(); 
response.AddHeader("Content-Disposition", String.Format("Attachment;Filename=file.xls",)); 
response.Buffer = true; 
response.ContentEncoding = System.Text.Encoding.Default; 
response.ContentType = "application/vnd.ms-excel"; 
response.Write(excelTable); 
response.End(); 

i widziałem, że to nie jest prawdziwy plik .xls. Mogę otworzyć go w Notatniku i zobaczyć moje standardowe kody tabeli html.

Teraz rozumiem, że definiowanie ContentType nie wystarczy. Co jeszcze mogę zrobić, aby wygenerować czysty plik .xls lub .xlsx? Czy powinienem używać bibliotek Excel, takich jak OpenXML, Interop itp.?

+1

http://epplus.codeplex.com/ – AakashM

Odpowiedz

4

Rzeczywiste Dane XLS/XLSX muszą zostać odesłane - to znaczy dane wygenerowane za pomocą biblioteki (np. EEPlus) lub innego odpowiedniego źródła.

To typowe hakowanie/podejście działa, ponieważ Excel "wie, jak czytać HTML". To w rzeczywistości nie przekształca HTML w XSL/XLSX, chociaż można go zapisać jako arkusz kalkulacyjny nowy po załadowaniu przez Excel.

Zmiana typu zawartości nie będzie miała wpływu na dane , a zamiast tego skutecznie zatrzyma to podejście z działania: typ zawartości służy do powiązania programu (np. Excel), który będzie używany do otwierania/czytania dane.

Tak, tak: aby wygenerować prawdziwy dokument XLS/XLSX, użyj biblioteki.

Powiązane problemy