SpreadsheetML - XLSX, XML

Cirka SpreadsheetML

SpreadsheetML är ett namn på en familj av XML-baserade format för kalkylarksdokument. 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 introduceras i Microsoft Office 2007-applikationer. Office Open XML är ett containerformat 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 lagrar dokument i SpreadsheetML version 2010 enligt definitionen i den uppdaterade OOXML-standarden.

SpreadsheetML i Aspose.Cells

Det finns tre “versioner” av SpreadsheetML tillgängliga:

SpreadsheetML “Version” Tillämplig standard/specifikation Stöds i Aspose.Cells for .NET
Microsoft Excel 2003 Microsoft Excel 2003 XML Ja
Microsoft Excel 2007 OOXML ECMA-376 Ja
Microsoft Excel 2010 OOXML ISO/IEC DIS 29500 Ja
Microsoft Excel 2013 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 Microsoft Excel-dokument i åtanke (och SpreadsheetML är känt för att efterlikna den interna representationen av Microsoft Excel-dokument).

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

Det är sant att Office Open XML-teknik gör det möjligt att bygga dokumentbehandling och generera applikationer med bara XML-klasserna utan att förlita sig på tredjepartsbibliotek som Aspose.Cells. Vi tror dock starkt att det fortfarande är mycket fördelaktigt att använda Aspose.Cells när du har att hantera OOXML-dokument, snarare än att arbeta genom XML eller andra bibliotek.

OOXML-specifikationen är flera tusen sidor lång. Att vara öppen och standard betyder 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 bearbeta 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.
  • Möjlighet att bygga dokument från fragment, från ett eller flera dokument, samtidigt som data automatiskt sammanfogas genom stilistisk formatering, diagram och grafik.
  • Funktioner på hög nivå, som att importera data från olika datakällor inklusive Array, ArrayList, DataTable, DataColumn, DataGrid, DataView och DataReader eller exportera 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.

Betrakta följande exempel. Vissa celler innehåller texten “Hello World” i fet stil. Föreställ dig nu att du behöver skriva ett program som söker efter alla “Hello World”-fraser i arbetsbladet 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>

Att implementera även en enkel sök- och ersätt-operation 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.