You've already forked lazarus-ccr
fpspreadsheet: Improves OpenDocument support
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@687 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
BIN
components/fpspreadsheet/examples/opendocdemo/oocreated.ods
Normal file
BIN
components/fpspreadsheet/examples/opendocdemo/oocreated.ods
Normal file
Binary file not shown.
@ -11,7 +11,7 @@
|
|||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<Title Value="opendocwrite"/>
|
<Title Value="opendocwrite"/>
|
||||||
<UseAppBundle Value="False"/>
|
<UseAppBundle Value="False"/>
|
||||||
<ActiveEditorIndexAtStart Value="3"/>
|
<ActiveEditorIndexAtStart Value="1"/>
|
||||||
</General>
|
</General>
|
||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
<ProjectVersion Value=""/>
|
<ProjectVersion Value=""/>
|
||||||
@ -33,13 +33,13 @@
|
|||||||
<PackageName Value="laz_fpspreadsheet"/>
|
<PackageName Value="laz_fpspreadsheet"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="14">
|
<Units Count="15">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="opendocwrite.lpr"/>
|
<Filename Value="opendocwrite.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="opendocwrite"/>
|
<UnitName Value="opendocwrite"/>
|
||||||
<CursorPos X="33" Y="61"/>
|
<CursorPos X="9" Y="30"/>
|
||||||
<TopLine Value="47"/>
|
<TopLine Value="8"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="309"/>
|
<UsageCount Value="309"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -70,7 +70,7 @@
|
|||||||
<UnitName Value="xlsbiff5"/>
|
<UnitName Value="xlsbiff5"/>
|
||||||
<CursorPos X="26" Y="95"/>
|
<CursorPos X="26" Y="95"/>
|
||||||
<TopLine Value="92"/>
|
<TopLine Value="92"/>
|
||||||
<EditorIndex Value="5"/>
|
<EditorIndex Value="6"/>
|
||||||
<UsageCount Value="140"/>
|
<UsageCount Value="140"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
@ -79,7 +79,7 @@
|
|||||||
<UnitName Value="fpsutils"/>
|
<UnitName Value="fpsutils"/>
|
||||||
<CursorPos X="1" Y="49"/>
|
<CursorPos X="1" Y="49"/>
|
||||||
<TopLine Value="30"/>
|
<TopLine Value="30"/>
|
||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="5"/>
|
||||||
<UsageCount Value="140"/>
|
<UsageCount Value="140"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
@ -88,7 +88,7 @@
|
|||||||
<UnitName Value="xlsbiff2"/>
|
<UnitName Value="xlsbiff2"/>
|
||||||
<CursorPos X="1" Y="16"/>
|
<CursorPos X="1" Y="16"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="6"/>
|
<EditorIndex Value="7"/>
|
||||||
<UsageCount Value="139"/>
|
<UsageCount Value="139"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit6>
|
</Unit6>
|
||||||
@ -97,7 +97,7 @@
|
|||||||
<UnitName Value="fpolestorage"/>
|
<UnitName Value="fpolestorage"/>
|
||||||
<CursorPos X="30" Y="654"/>
|
<CursorPos X="30" Y="654"/>
|
||||||
<TopLine Value="642"/>
|
<TopLine Value="642"/>
|
||||||
<EditorIndex Value="7"/>
|
<EditorIndex Value="8"/>
|
||||||
<UsageCount Value="139"/>
|
<UsageCount Value="139"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
@ -116,9 +116,9 @@
|
|||||||
<Unit10>
|
<Unit10>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<UnitName Value="fpspreadsheet"/>
|
<UnitName Value="fpspreadsheet"/>
|
||||||
<CursorPos X="46" Y="308"/>
|
<CursorPos X="1" Y="759"/>
|
||||||
<TopLine Value="296"/>
|
<TopLine Value="746"/>
|
||||||
<EditorIndex Value="3"/>
|
<EditorIndex Value="4"/>
|
||||||
<UsageCount Value="95"/>
|
<UsageCount Value="95"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit10>
|
</Unit10>
|
||||||
@ -131,8 +131,8 @@
|
|||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<UnitName Value="fpsopendocument"/>
|
<UnitName Value="fpsopendocument"/>
|
||||||
<CursorPos X="9" Y="266"/>
|
<CursorPos X="7" Y="296"/>
|
||||||
<TopLine Value="263"/>
|
<TopLine Value="275"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -142,131 +142,139 @@
|
|||||||
<UnitName Value="xlsxooxml"/>
|
<UnitName Value="xlsxooxml"/>
|
||||||
<CursorPos X="1" Y="268"/>
|
<CursorPos X="1" Y="268"/>
|
||||||
<TopLine Value="253"/>
|
<TopLine Value="253"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="3"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit13>
|
</Unit13>
|
||||||
|
<Unit14>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\..\usr\local\share\fpcsrc\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||||
|
<CursorPos X="10" Y="154"/>
|
||||||
|
<TopLine Value="141"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit14>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="390" Column="26" TopLine="377"/>
|
<Caret Line="265" Column="28" TopLine="253"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="420" Column="32" TopLine="407"/>
|
<Caret Line="313" Column="1" TopLine="301"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="421" Column="14" TopLine="408"/>
|
<Caret Line="41" Column="45" TopLine="37"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="460" Column="33" TopLine="440"/>
|
<Caret Line="355" Column="5" TopLine="331"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="181" Column="91" TopLine="160"/>
|
<Caret Line="311" Column="1" TopLine="299"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="769" Column="83" TopLine="754"/>
|
<Caret Line="260" Column="28" TopLine="249"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="102" Column="15" TopLine="89"/>
|
<Caret Line="365" Column="5" TopLine="340"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="103" Column="15" TopLine="90"/>
|
<Caret Line="290" Column="5" TopLine="265"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="404" Column="5" TopLine="379"/>
|
<Caret Line="380" Column="74" TopLine="363"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="187" Column="1" TopLine="172"/>
|
<Caret Line="278" Column="1" TopLine="265"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="380" Column="17" TopLine="362"/>
|
<Caret Line="279" Column="1" TopLine="266"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="412" Column="1" TopLine="404"/>
|
<Caret Line="283" Column="1" TopLine="270"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="716" Column="1" TopLine="702"/>
|
<Caret Line="284" Column="1" TopLine="271"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="167" Column="17" TopLine="154"/>
|
<Caret Line="287" Column="1" TopLine="274"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="..\..\xlsbiff2.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="69" Column="1" TopLine="57"/>
|
<Caret Line="289" Column="1" TopLine="276"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="opendocwrite.lpr"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="71" Column="1" TopLine="46"/>
|
<Caret Line="290" Column="18" TopLine="277"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="..\..\xlsxooxml.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="48" Column="16" TopLine="35"/>
|
<Caret Line="289" Column="1" TopLine="276"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="105" Column="1" TopLine="80"/>
|
<Caret Line="290" Column="1" TopLine="277"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="111" Column="1" TopLine="86"/>
|
<Caret Line="289" Column="1" TopLine="276"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="386" Column="1" TopLine="377"/>
|
<Caret Line="290" Column="1" TopLine="277"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="357" Column="1" TopLine="350"/>
|
<Caret Line="289" Column="1" TopLine="276"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="304" Column="3" TopLine="294"/>
|
<Caret Line="290" Column="1" TopLine="277"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="265" Column="28" TopLine="253"/>
|
<Caret Line="293" Column="1" TopLine="280"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="313" Column="1" TopLine="301"/>
|
<Caret Line="295" Column="1" TopLine="282"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="41" Column="45" TopLine="37"/>
|
<Caret Line="297" Column="1" TopLine="284"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="355" Column="5" TopLine="331"/>
|
<Caret Line="754" Column="1" TopLine="741"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="311" Column="1" TopLine="299"/>
|
<Caret Line="755" Column="1" TopLine="742"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="260" Column="28" TopLine="249"/>
|
<Caret Line="757" Column="1" TopLine="744"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="365" Column="5" TopLine="340"/>
|
<Caret Line="759" Column="1" TopLine="746"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
<Caret Line="290" Column="5" TopLine="265"/>
|
<Caret Line="392" Column="1" TopLine="379"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
|
1
components/fpspreadsheet/examples/opendocdemo/unzipoocreated.sh
Executable file
1
components/fpspreadsheet/examples/opendocdemo/unzipoocreated.sh
Executable file
@ -0,0 +1 @@
|
|||||||
|
unzip oocreated.ods
|
4
components/fpspreadsheet/examples/opendocdemo/ziptest.sh
Executable file
4
components/fpspreadsheet/examples/opendocdemo/ziptest.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
cd test
|
||||||
|
zip test.ods *
|
||||||
|
mv test.ods ../
|
||||||
|
cd ..
|
@ -72,8 +72,8 @@ const
|
|||||||
OOXML_PATH_SETTINGS = 'settings.xml';
|
OOXML_PATH_SETTINGS = 'settings.xml';
|
||||||
OOXML_PATH_STYLES = 'styles.xml';
|
OOXML_PATH_STYLES = 'styles.xml';
|
||||||
OOXML_PATH_MIMETYPE = 'mimetype.xml';
|
OOXML_PATH_MIMETYPE = 'mimetype.xml';
|
||||||
OPENDOC_PATH_METAINF = 'META-INF\';
|
OPENDOC_PATH_METAINF = 'META-INF' + PathDelim;
|
||||||
OPENDOC_PATH_METAINF_MANIFEST = 'META-INF\manifest.xml';
|
OPENDOC_PATH_METAINF_MANIFEST = 'META-INF' + PathDelim + 'manifest.xml';
|
||||||
|
|
||||||
{ OpenDocument schemas constants }
|
{ OpenDocument schemas constants }
|
||||||
SCHEMAS_XMLNS_OFFICE = 'urn:oasis:names:tc:opendocument:xmlns:office:1.0';
|
SCHEMAS_XMLNS_OFFICE = 'urn:oasis:names:tc:opendocument:xmlns:office:1.0';
|
||||||
@ -261,30 +261,54 @@ procedure TsSpreadOpenDocWriter.WriteWorksheet(CurSheet: TsWorksheet);
|
|||||||
var
|
var
|
||||||
j, k: Integer;
|
j, k: Integer;
|
||||||
CurCell: PCell;
|
CurCell: PCell;
|
||||||
|
CurRow: array of PCell;
|
||||||
|
LastColNum: Cardinal;
|
||||||
begin
|
begin
|
||||||
|
LastColNum := CurSheet.GetLastColNumber;
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
FContent := FContent +
|
FContent := FContent +
|
||||||
' <table:table table:name="' + CurSheet.Name + '" table:style-name="ta1">' + LineEnding +
|
' <table:table table:name="' + CurSheet.Name + '" table:style-name="ta1">' + LineEnding +
|
||||||
' <table:table-column table:style-name="co1" table:number-columns-repeated="' +
|
' <table:table-column table:style-name="co1" table:number-columns-repeated="' +
|
||||||
IntToStr(CurSheet.GetLastColNumber + 1) + '" table:default-cell-style-name="Default"/>' + LineEnding;
|
IntToStr(LastColNum) + '" table:default-cell-style-name="Default"/>' + LineEnding;
|
||||||
|
|
||||||
// The cells need to be written in order, row by row
|
// The cells need to be written in order, row by row, cell by cell
|
||||||
for j := 0 to CurSheet.GetLastRowNumber do
|
for j := 1 to CurSheet.GetLastRowNumber do
|
||||||
begin
|
begin
|
||||||
FContent := FContent +
|
FContent := FContent +
|
||||||
' <table:table-row table:style-name="ro1">' + LineEnding;
|
' <table:table-row table:style-name="ro1">' + LineEnding;
|
||||||
|
|
||||||
|
// First make an array with the cells of this row in their respective order
|
||||||
|
// nil pointers indicate empty cells, so it's necessary to initialize the array
|
||||||
|
SetLength(CurRow, LastColNum);
|
||||||
|
for k := 0 to LastColNum - 1 do CurRow[k] := nil;
|
||||||
|
|
||||||
|
// Now fill the array with the cells in their proper place
|
||||||
for k := 0 to CurSheet.FCells.Count - 1 do
|
for k := 0 to CurSheet.FCells.Count - 1 do
|
||||||
begin
|
begin
|
||||||
CurCell := CurSheet.FCells.Items[k];
|
CurCell := CurSheet.FCells.Items[k];
|
||||||
if CurCell^.Row = j then WriteCellCallback(CurCell, nil);
|
if CurCell^.Row = j then CurRow[CurCell^.Col - 1] := CurCell;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FContent := FContent + ' </table:table-row>' + LineEnding;
|
for k := 0 to LastColNum - 1 do
|
||||||
|
begin
|
||||||
|
CurCell := CurRow[k];
|
||||||
|
|
||||||
|
if CurCell = nil then
|
||||||
|
FContent := FContent + '<table:table-cell/>' + LineEnding
|
||||||
|
else WriteCellCallback(CurCell, nil);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
FContent := FContent +
|
||||||
|
' </table:table-row>' + LineEnding;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Clean up
|
||||||
|
SetLength(CurRow, 0);
|
||||||
|
|
||||||
// Footer
|
// Footer
|
||||||
FContent := FContent + ' </table:table>' + LineEnding;
|
FContent := FContent +
|
||||||
|
' </table:table>' + LineEnding;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{*******************************************************************
|
{*******************************************************************
|
||||||
@ -346,15 +370,6 @@ begin
|
|||||||
WriteStringToFile(TempDir + OPENDOC_PATH_METAINF_MANIFEST, FMetaInfManifest);
|
WriteStringToFile(TempDir + OPENDOC_PATH_METAINF_MANIFEST, FMetaInfManifest);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{*******************************************************************
|
|
||||||
* TsSpreadOOXMLWriter.WriteToStream ()
|
|
||||||
*
|
|
||||||
* DESCRIPTION: Writes an Excel 2 file to a stream
|
|
||||||
*
|
|
||||||
* Excel 2.x files support only one Worksheet per Workbook,
|
|
||||||
* so only the first will be written.
|
|
||||||
*
|
|
||||||
*******************************************************************}
|
|
||||||
procedure TsSpreadOpenDocWriter.WriteToStream(AStream: TStream; AData: TsWorkbook);
|
procedure TsSpreadOpenDocWriter.WriteToStream(AStream: TStream; AData: TsWorkbook);
|
||||||
begin
|
begin
|
||||||
|
|
||||||
@ -377,8 +392,8 @@ procedure TsSpreadOpenDocWriter.WriteNumber(AStream: TStream; const ARow,
|
|||||||
begin
|
begin
|
||||||
// The row should already be the correct one
|
// The row should already be the correct one
|
||||||
FContent := FContent +
|
FContent := FContent +
|
||||||
' <table:table-cell office:value-type="float" office:value="' + IntToStr(ACol + 1) + '">' + LineEnding +
|
' <table:table-cell office:value-type="float" office:value="' + FloatToStr(AValue) + '">' + LineEnding +
|
||||||
' <text:p>1</text:p>' + LineEnding +
|
' <text:p>' + FloatToStr(AValue) + '</text:p>' + LineEnding +
|
||||||
' </table:table-cell>' + LineEnding;
|
' </table:table-cell>' + LineEnding;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user