From fe3fbb23eb878b7a85e40805f3525f0a277b5570 Mon Sep 17 00:00:00 2001 From: Debao Zhang Date: Wed, 25 Mar 2015 11:48:05 +0800 Subject: [PATCH] Fix Issue #83: Make sure chartsheet appear on the proper location. --- src/xlsx/xlsxworkbook.cpp | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/src/xlsx/xlsxworkbook.cpp b/src/xlsx/xlsxworkbook.cpp index 3eb7cd7..c3ede80 100755 --- a/src/xlsx/xlsxworkbook.cpp +++ b/src/xlsx/xlsxworkbook.cpp @@ -483,10 +483,10 @@ void Workbook::saveToXmlFile(QIODevice *device) const writer.writeEndElement();//bookViews writer.writeStartElement(QStringLiteral("sheets")); - //work sheets - QList > worksheets = getSheetsByTypes(AbstractSheet::ST_WorkSheet); - for (int i=0; i sheet = worksheets[i]; + int worksheetIndex = 0; + int chartsheetIndex = 0; + for (int i=0; isheets.size(); ++i) { + QSharedPointer sheet = d->sheets[i]; writer.writeEmptyElement(QStringLiteral("sheet")); writer.writeAttribute(QStringLiteral("name"), sheet->sheetName()); writer.writeAttribute(QStringLiteral("sheetId"), QString::number(sheet->sheetId())); @@ -495,23 +495,11 @@ void Workbook::saveToXmlFile(QIODevice *device) const else if (sheet->sheetState() == AbstractSheet::SS_VeryHidden) writer.writeAttribute(QStringLiteral("state"), QStringLiteral("veryHidden")); - d->relationships->addDocumentRelationship(QStringLiteral("/worksheet"), QStringLiteral("worksheets/sheet%1.xml").arg(i+1)); - writer.writeAttribute(QStringLiteral("r:id"), QStringLiteral("rId%1").arg(d->relationships->count())); - } - - //chart sheets - QList > chartsheets = getSheetsByTypes(AbstractSheet::ST_ChartSheet); - for (int i=0; i sheet = chartsheets[i]; - writer.writeEmptyElement(QStringLiteral("sheet")); - writer.writeAttribute(QStringLiteral("name"), sheet->sheetName()); - writer.writeAttribute(QStringLiteral("sheetId"), QString::number(sheet->sheetId())); - if (sheet->sheetState() == AbstractSheet::SS_Hidden) - writer.writeAttribute(QStringLiteral("state"), QStringLiteral("hidden")); - else if (sheet->sheetState() == AbstractSheet::SS_VeryHidden) - writer.writeAttribute(QStringLiteral("state"), QStringLiteral("veryHidden")); + if (sheet->sheetType() == AbstractSheet::ST_WorkSheet) + d->relationships->addDocumentRelationship(QStringLiteral("/worksheet"), QStringLiteral("worksheets/sheet%1.xml").arg(++worksheetIndex)); + else + d->relationships->addDocumentRelationship(QStringLiteral("/chartsheet"), QStringLiteral("chartsheets/sheet%1.xml").arg(++chartsheetIndex)); - d->relationships->addDocumentRelationship(QStringLiteral("/chartsheet"), QStringLiteral("chartsheets/sheet%1.xml").arg(i+1)); writer.writeAttribute(QStringLiteral("r:id"), QStringLiteral("rId%1").arg(d->relationships->count())); } writer.writeEndElement();//sheets