SpreadsheetML - XLSX, XML

Om SpreadsheetML

SpreadsheetML är ett namn på en familj av XML-baserade format för kalkylbladsdokument. Det finns flera versioner av SpreadsheetML:

  1. SpreadsheetML-version 2003 introducerades i Microsoft Word 2003. SpreadsheetML var ett betydande steg av Microsoft mot att göra dokumentformatet öppet.
  2. Office Open XML (OOXML) är det nya XML-baserade formatet som introducerades i Microsoft Office 2007-applikationer. Office Open XML är ett behållarformat för flera specialiserade XML-baserade märkningsspråk. SpreadsheetML-version 2007 är märkningsspråket som används av Microsoft Office Excel 2007 för att lagra sina dokument.
  3. Microsoft Excel 2010 och senare versioner lagrar dokument i SpreadsheetML-version 2010 enligt den uppdaterade OOXML-standarden.

SpreadsheetML i Aspose.Cells

Det finns tre ”versioner” av tillgängligt SpreadsheetML:

SpreadsheetML “Version” Tillämplig standard/specifikation Stöds i Aspose.Cells for Java
Microsoft Excel 2003 Microsoft Excel 2003 XML Ja
Microsoft Excel 2007 OOXML ECMA-376 Ja
Microsoft Excel 2010 och senare versioner OOXML ISO/IEC DIS 29500 Ja
OOXML SpreadsheetML-dokument kommer oftast som XLSX-filer, som är ZIP-paket. Förutom XLSX. Aspose.Cells ger omfattande stöd för att ladda, spara och konvertera SpreadsheetML-dokument. En sådan allomfattande implementering är möjlig eftersom Aspose.Cells utformades med strukturen för Microsoft Excel-dokument i åtanke (och det är känt att SpreadsheetML efterliknar den interna representationen av Microsoft Excel-dokument).

Ett XLSX-dokument genererat av Aspose.Cells och öppnat i Microsoft Excel

todo:image_alt_text

Det XLSX-dokument som genererats av Aspose.Cells följer den öppna förpackningskonventionen och kan öppnas i en ZIP-kapabel applikation

todo:image_alt_text

OOXML är öppen, varför använda Aspose.Cells?

Det är sant att Office Open XML-tekniken gör det möjligt att bygga dokumentbehandlings- och genereringsapplikationer med bara XML-klasser utan att förlita sig på tredjepartsbibliotek som Aspose.Cells. Dock tror vi starkt att det fortfarande är mycket fördelaktigt att använda Aspose.Cells när du måste hantera OOXML-dokument, snarare än att arbeta genom XML eller andra bibliotek.

Specifikationen för OOXML är flera tusen sidor lång. Att vara öppen och standard innebär inte att vara enkel. För att korrekt bearbeta eller generera OOXML-dokument måste man investera i att lära sig formatet väl.

Förutom att göra det enklare att korrekt behandla och generera giltiga dokument tillhandahåller Aspose.Cells följande viktiga funktioner som du inte skulle ha när du arbetar med OOXML-filer direkt via XML eller andra tredjepartsbibliotek:

  • Kvalitetskonverteringar mellan många populära Excel-format, inklusive konvertering till PDF, HTML, TIFF och utskrift.
  • Förmåga att bygga dokument från fragment, från en eller flera dokument, samtidigt som data automatiskt sammanfogas med stilistisk formatering, diagram och grafik.
  • Hög nivå av funktioner, såsom import av data från olika datakällor inklusive Array, ArrayList, DataTable, DataColumn, DataGrid, DataView och DataReader eller export av data för att fylla en DataTable eller en Array med bara en rad kod.
  • Robust formelberäkningsmotor som stöder nästan alla standard- och avancerade Microsoft Excel-funktioner.

Överväg följande exempel. Vissa celler innehåller texten ”Hello World” i fetstil. Tänk dig nu att du behöver skriva ett program som söker efter alla fraser ”Hello World” i kalkylbladet och ersätter dem med ”Goodbye Earth”.

Ett fragment av ett Office Open XML-dokument

XML

 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

\- <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">

  <dimension ref="A1:M184" />

\- <sheetViews>

\- <sheetView tabSelected="1" workbookViewId="0">

  <selection activeCell="H27" sqref="H27" />

  </sheetView>

  </sheetViews>

  <sheetFormatPr defaultRowHeight="15" />

\- <sheetData>

\- <row r="1" spans="1:7">

\- <c r="A1" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="11" spans="1:7">

\- <c r="D11" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="15" spans="1:7">

\- <c r="G15" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="21" spans="2:7">

\- <c r="G21" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="25" spans="2:7">

\- <c r="F25" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="31" spans="2:7">

\- <c r="B31" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="34" spans="6:13">

\- <c r="M34" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="38" spans="6:13">

\- <c r="F38" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="117" spans="8:8">

\- <c r="H117" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="184" spans="8:8">

\- <c r="H184" s="1" t="s">

  <v>0</v>

  </c>

  </row>

  </sheetData>

  <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />

</worksheet>

Även att implementera en enkel sök- och ersättningsoperation i ett Office Open XML-dokument är svårt.

Vårt råd: kom ihåg att öppen och standard inte betyder enkel och använd Aspose.Cells.