2009-11-09 34 views
7

C# ile bir excel dosyası oluşturmalıyım. XML belgesi oluşturmanın bunu yapmanın en kolay yolu olan birkaç yeri okudum mu? Birden çok adlandırılmış sekmeye sahip olmalı ve belirli hücrelerin metin, tarih, sayı vb. Olduğunu belirtmem gerekiyor. Herhangi bir öneri veya iyi örnek var mı?C# ile Excel Dosyaları Oluşturma #

cevap

7

Sen System.IO.Packaging API ihtiyaç - Bu ekleyebileceksiniz Inserting Values into Excel 2007 Cells'da açıklandığı gibi .xlsx belgeleri oluşturun. Excel 2007 formatı, Excel 2003 ve XP tarafından ücretsiz Microsoft Office Compatibility Pack yüklü olarak da kullanılabilir.

+0

@wcoenen -nice düzenlemeleri, teşekkürler. – Murph

+0

Excel'in 'System.IO.Packaging' ile nasıl oluşturulacağı ile ilgili bir örnek var mı? Excel ile ilgilenen belgelerde hiçbir şey bulamıyorum. –

+0

@IanBoyd daha iyi bir yol var (şimdi) ClosedXML'e bakın - burada bulabilirsiniz: http://closedxml.codeplex.com/ – Murph

1

sen Çek değildir bu link

ve

spreadsheetgear ve

+0

CarlosAg kütüphanesi iyidir, ancak sınırlamaları vardır ve System.IO tarafından etkin bir şekilde başarılıdır. Paketleme – Murph

+0

ve e-tablo hakkında ne dersiniz? –

+0

@astander - Spreadsheetgear biraz özgür değil ve bu yüzden araştırdığım bir şey değil. – Murph

2

Microsoft'un tavsiye ettiği mekanizma kullanarak içerir gibi bu yapmak sinir bozucu zor Masaüstü için iyi, ancak web için işe yaramaz ofis.

.xls dosyaların ikili biçimi, Microsoft

.xslx Office 2007'deki .xlsx açık XML dosya tanıtıldı yüzden, görgü ise sözde basittir - XML ​​dosyalarının tam sadece bir zip konteyneri bulunuyor. System.IO.Packaging ile açabilir ve System.Xml ile düzenleyebilirsiniz. Ofisin eski sürümleri için bile bir uyumluluk paketi var.

Ne yazık ki sadece basit değil - .xslx biçimi horrible beyond words şeklindedir.

16 bit optimize edilmiş ikili .xls biçimini (başlangıçta Windows 3.1 için tasarlanmış) aldılar ve ikili yerine XML'ye serileştirdiler. Sonra gerçekten aptalca değişiklikler eklediler, hücre yorumları aslında VML gibi - IE5 ile varsayılan olarak düşürülmüş bir format! Ayrıca, XML'e bir ton sihirli sayı ve meta veri eklediler. Böylece, üzerinde herhangi bir dönüşüm kullanamazsınız. Bu yüzden, bu enayi el ile ayrıştırıyorsunuz.

Sonunda, hata ayıklamak için tam bir eşek oluşturduk ve düzenli olarak, uyumluluk paketinin bozuk (neden yok) olarak bildirdiği ancak Office'in son sürümünün düzgün açabileceği .xslx dosyalarını buluruz.

Bunun için gerçekten güzel bir açık kaynak kitaplığı var: SpreadsheetLight. Çok iyi bir kütüphane, ama .xslx dosyalarını kendiniz kazmanız ve ölçmeniz gereken her şey acı verici olacak.

İlgili konular