I'm trying to create an xlsx file programmatically on iOS. Since the internal data of xlsx files is basically stored in separate xml files, I tried to recreate xlsx structure with all its files and subdirectories, compress them into a zip file and set its extension to xlsx. I use GDataXML parser/writer for creating all the necessary xml files. However, the file I get can't be opened as xlsx file. Even if I rip all the data from a valid xlsx file, create all the xml files manually by copying data from the original xml files and compress them manually, I can't recreate a valid xlsx file.
The questions are:
XLSX is a zipped, XML-based file format. Microsoft Excel 2007 and later uses XLSX as the default file format when creating a new spreadsheet. Support for loading and saving legacy XLS files is also included. XLS is the default format used with Office 97-2003.
XLSX files are the standard extension for the modern Microsoft Excel spreadsheet files. They are a zip-compressed XML spreadsheet file used to analyze and organize data. They contain numerical data separated by rows and columns within a cell. It is a modern, updated version of the original Excel file format.
XLSX files organize data in cells that are stored in worksheets, which are in turn stored in workbooks (files that contain multiple worksheets). The cells of a spreadsheet are positioned by rows and columns and can contain styles, formatting, math functions, and more.
In answer to your questions:
Example of the contents of an xlsx file:
unzip -l example.xlsx Archive: example.xlsx Length Date Time Name -------- ---- ---- ---- 769 10-15-14 09:23 xl/worksheets/sheet1.xml 550 10-15-14 09:22 xl/workbook.xml 201 10-15-14 09:22 xl/sharedStrings.xml ...
I regularly unzip XLSX files, make minor changes for testing and re-zip them without any issue.
Update: The important thing is to avoid zipping the parent directory. Here is an example using the zip
system utility on Linux or the OS X:
# Unzip an xlsx file into a directory. unzip example.xlsx -d newdir # Make some valid changes to the files. cd newdir/ vi xl/worksheets/sheet1.xml # Rezip the files *FROM* the unzipped directory. # Note: you could also re-zip to the original file if required. find . -type f | xargs zip ../newfile.xlsx # Check the file looks okay. cd .. unzip -l newfile.xlsx xdg-open newfile.xlsx
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With