Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create .xls file programmatically

Tags:

ios

excel

Is there any way to create an Excel file programmatically in iOS?

like image 853
user2605869 Avatar asked Jul 24 '13 09:07

user2605869


2 Answers

This is a strip down version of XML representation of XLS file, Just create an raw XML like this...and save it as XLS.

<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Version>14.0</Version>
 </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <AllowPNG/>
 </OfficeDocumentSettings>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>11720</WindowHeight>
  <WindowWidth>25600</WindowWidth>
  <WindowTopX>0</WindowTopX>
  <WindowTopY>0</WindowTopY>
  <TabRatio>600</TabRatio>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Bottom"/>
   <Borders/>
   <Font ss:Color="#000000"/>
   <NumberFormat/>
  </Style>
  <Style ss:ID="s62">
   <Interior/>
   <Protection/>
  </Style>
  <Style ss:ID="s63">
   <Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>
   <Protection/>
  </Style>
 </Styles>
 <Worksheet ss:Name="Apple Inc">
  <Table x:FullColumns="1"
   x:FullRows="1" ss:StyleID="s62" ss:DefaultColumnWidth="53"
   ss:DefaultRowHeight="12">
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="90"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="180"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="60" ss:Span="5"/>
   <Column ss:Index="9" ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="48"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="60"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="48"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="90" ss:Span="1"/>
   <Column ss:Index="14" ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="300"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="55" ss:Span="1"/>
   <Row ss:AutoFitHeight="0" ss:Height="20">
    <Cell ss:StyleID="s63"><Data ss:Type="String">Room</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Description</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">level</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">level</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">level</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">level</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Date</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Audit</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Risk</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Value</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Score</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">ScoreName</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Action</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Comments</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Test</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">Test</Data></Cell>
   </Row>
    <Row>
        <Cell><Data ss:Type="Number">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="Number">data value</Data></Cell>
        <Cell><Data ss:Type="Number">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">data value</Data></Cell>
        <Cell><Data ss:Type="String">Vau</Data></Cell>
        <Cell><Data ss:Type="String">Test</Data></Cell>
    </Row>
 </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Header x:Margin="0.3"/>
    <Footer x:Margin="0.3"/>
    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
   </PageSetup>
   <Unsynced/>
   <Print>
    <ValidPrinterInfo/>
    <HorizontalResolution>600</HorizontalResolution>
    <VerticalResolution>600</VerticalResolution>
   </Print>
   <PageLayoutZoom>0</PageLayoutZoom>
   <Selected/>
   <Panes>
    <Pane>
     <Number>3</Number>
     <ActiveRow>15</ActiveRow>
     <ActiveCol>13</ActiveCol>
    </Pane>
   </Panes>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
   <AllowFormatCells/>
   <AllowSizeCols/>
   <AllowSizeRows/>
   <AllowInsertCols/>
   <AllowInsertRows/>
   <AllowInsertHyperlinks/>
   <AllowDeleteCols/>
   <AllowDeleteRows/>
   <AllowSort/>
   <AllowFilter/>
   <AllowUsePivotTables/>
  </WorksheetOptions>
 </Worksheet>
</Workbook>

You will be able to create different styles too,

  <Style ss:ID="s63">
   <Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>
   <Protection/>
  </Style>
like image 144
TeaCupApp Avatar answered Nov 02 '22 09:11

TeaCupApp


You could look at Creating Excel (.xlsx) files in Cocoa

If the data you need to save is simple you could also just save it as .CVS file instead http://en.wikipedia.org/wiki/Comma-separated_values

like image 34
Architect Avatar answered Nov 02 '22 09:11

Architect