2010-08-27 19 views
19

Sto scrivendo un'applicazione Cocoa e sto cercando di esportare nel formato XML Excel (ISO/IEC 29500-1) che è fondamentalmente un file zip con un sacco di XML i file in esso denominati con estensione .Creazione di file Excel (.xlsx) in Cocoa

Ho provato a generare AppleScript e ad utilizzare NSAppleScript per creare il file Excel, che funziona, ma è lento e l'utente deve avere installato Excel sul proprio computer.

Sono stato in grado di creare un semplice file .xlsx Excel scrivendo l'XML nei file in Objective C e comprimendoli e rinominando lo zip in .xlsx. Excel potrebbe aprire il file, ma Numbers ha lanciato un errore nel tentativo di aprire il file che ho creato. Sembra che Excel abbia implementato tutte (o la maggior parte delle) specifiche ISO/IEC, mentre i numeri possono solo aprire la versione aromatizzata di Excel.

Come creare file Excel di lavoro utilizzando Cocoa e Objective-c?

+1

si potrebbe verificare la [documentazione MSDN del formato di file XLSX] (http://msdn.microsoft.com/en-us/library/dd922181 (v = office.12) aspx). Potrebbe esserti d'aiuto ... – froeschli

risposta

2

Wikipedia offers some links to libraries, che probabilmente ti darà un buon inizio.

Se il formato Office Open XML non è un requisito e non è necessario esportare file eccessivamente complessi, suggerisco anche di salvare i file come HTML formattato in fogli di stile che Excel può anche leggere. Un modo semplice per imparare a formattare l'HTML che vuoi come foglio di calcolo è creare il file in Excel e salvarlo come HTML.

+0

Sembra che tu possa racchiudere il componente PHPExcel di PHP all'interno di Objective-C. – adib

3

Ho lavorato con il OpenOffice API e funziona benissimo. Ti suggerirei di lavorare con quello per creare i tuoi file Excel. Se non hai tempo/pazienza per farlo, una soluzione alternativa potrebbe essere quella di avere 2 link per esportare i file, la versione XLSX hack per gli Excels of the world e quindi un file CSV separato esportato per l'applicazione Numbers.

+2

potresti pubblicare altro su di esso o qualche codice di esempio minimo? –

11

Come incapsulare la tabella HTML nel file di Excel? Ho controllato che funzioni e posso aprirlo con Excel.

NSURL * documentsDirectory = [NSFileManager.defaultManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask].lastObject; 
NSURL *file = [documentsDirectory URLByAppendingPathComponent:@"contacts.xls"]; 
NSString* string = @"<table><tr><td>FOO</td><td>BAR</td></tr></table>"; 
[string writeToFile:file.path atomically:YES encoding:NSUTF8StringEncoding error:nil]; 
+1

Questo NON crea un file xls (Excel). Questo crea un file di frammenti HTML. – rmaddy

+0

Questo è un html, non xls –

Problemi correlati