2009-11-09 27 views
7

Potrzebuję utworzyć plik programu Excel za pośrednictwem C#. Czytałem kilka miejsc, w których tworzenie dokumentu XML jest najłatwiejszym sposobem na zrobienie tego? Muszę mieć wiele nazwanych kart i być w stanie określić, że konkretne komórki to tekst, data, numer, itd ... Jakieś sugestie lub dobre przykłady?Tworzenie plików programu Excel za pomocą C#

Odpowiedz

7

Musisz się System.IO.Packaging API - pozwoli to na generować dokumenty .xlsx zgodnie z opisem w Inserting Values into Excel 2007 Cells. Format Excel 2007 może być również używany przez Excel 2003 i XP z zainstalowanym bezpłatnym Microsoft Office Compatibility Pack.

+0

@ WCOENEN -Wszystkie zmiany, dzięki. – Murph

+0

Czy istnieje przykład jak zbudować Excel za pomocą 'System.IO.Packaging'? Nie mogę znaleźć niczego w dokumentacji dotyczącej programu Excel. –

+0

@IanBoyd istnieje lepszy sposób (teraz) spójrz na ClosedXML - który można znaleźć tutaj: http://closedxml.codeplex.com/ – Murph

1
+0

Biblioteka CarlosAg jest dobra, ale ma ograniczenia i jest skutecznie zastąpiona przez System.IO. Opakowanie – Murph

+0

a co z arkuszem kalkulacyjnym? –

+0

@astander - Spreadsheetgear nie jest za darmo i dlatego nie jest to coś, co sprawdziłem. – Murph

0

Używamy pakiet o nazwie Aspose w pracy. Ma duży w pełni funkcjonalny komponent "Komórki", który działa dla nas cuda.

2

To jest frustrująca trudne do zrobienia, zgodnie z zaleceniami mechanizm Microsoftu polega na wykorzystaniu Biuro, które jest dobre na pulpicie, ale bezużyteczne w Internecie.

Format binarny .xls plików jest przyzwoitość, więc Microsoft wprowadził .xlsx plików OpenXML w Office 2007.

The .xslx jest podobno prosta - to tylko pojemnik na zamek pełen plików XML. Możesz go otworzyć pod numerem System.IO.Packaging i edytować przy pomocy System.Xml. Dostępny jest nawet pakiet zgodności dla starszych wersji pakietu Office.

Niestety, po prostu nie jest to proste - format .xslx to horrible beyond words.

Wygląda na to, że wzięli 16-bitowy zoptymalizowany format binarny .xls (zaprojektowany pierwotnie dla Windows 3.1) i serializowali go do XML zamiast binarnie. Potem dodali naprawdę głupie zmiany, takie jak komentarze komórki są w rzeczywistości VML - format rzekomo upuszczony z IE5! Dodali też mnóstwo magicznych liczb i metadanych do XML, więc nie możesz użyć żadnych transformacji, więc analizujesz to frajerem ręcznie.

W końcu zrobili z niego kompletnego osła do debugowania, a my regularnie znajdujemy pliki .xslx, które pakiet zgodności zgłasza jako uszkodzone (bez podania przyczyny), ale ostatnia wersja pakietu Office może być otwarta.

Jest tam naprawdę fajna biblioteka open source: SpreadsheetLight. Jest to bardzo dobra biblioteka, ale wszystko, co wymaga od ciebie dokładnego wkomponowania i rozszerzenia plików .xslx, będzie bolesne.

Powiązane problemy