Introduce new class OOXmlFile
This commit is contained in:
+5
-2
@@ -36,7 +36,9 @@ HEADERS += $$PWD/xlsxdocpropscore_p.h \
|
||||
$$PWD/xlsxcolor_p.h \
|
||||
$$PWD/xlsxnumformatparser_p.h \
|
||||
$$PWD/xlsxdrawinganchor_p.h \
|
||||
$$PWD/xlsxmediafile_p.h
|
||||
$$PWD/xlsxmediafile_p.h \
|
||||
$$PWD/xlsxooxmlfile.h \
|
||||
$$PWD/xlsxooxmlfile_p.h
|
||||
|
||||
SOURCES += $$PWD/xlsxdocpropscore.cpp \
|
||||
$$PWD/xlsxdocpropsapp.cpp \
|
||||
@@ -61,4 +63,5 @@ SOURCES += $$PWD/xlsxdocpropscore.cpp \
|
||||
$$PWD/xlsxcolor.cpp \
|
||||
$$PWD/xlsxnumformatparser.cpp \
|
||||
$$PWD/xlsxdrawinganchor.cpp \
|
||||
$$PWD/xlsxmediafile.cpp
|
||||
$$PWD/xlsxmediafile.cpp \
|
||||
$$PWD/xlsxooxmlfile.cpp
|
||||
|
||||
@@ -132,15 +132,6 @@ void ContentTypes::clearOverrides()
|
||||
m_overrides.clear();
|
||||
}
|
||||
|
||||
QByteArray ContentTypes::saveToXmlData() const
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
return data;
|
||||
}
|
||||
|
||||
void ContentTypes::saveToXmlFile(QIODevice *device) const
|
||||
{
|
||||
QXmlStreamWriter writer(device);
|
||||
@@ -205,13 +196,4 @@ bool ContentTypes::loadFromXmlFile(QIODevice *device)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ContentTypes::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
|
||||
return loadFromXmlFile(&buffer);
|
||||
}
|
||||
|
||||
} //namespace QXlsx
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include "xlsxooxmlfile.h"
|
||||
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QMap>
|
||||
@@ -44,7 +46,7 @@ class QIODevice;
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
class ContentTypes
|
||||
class ContentTypes : public OOXmlFile
|
||||
{
|
||||
public:
|
||||
ContentTypes();
|
||||
@@ -71,11 +73,8 @@ public:
|
||||
|
||||
void clearOverrides();
|
||||
|
||||
QByteArray saveToXmlData() const;
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
bool loadFromXmlData(const QByteArray &data);
|
||||
|
||||
private:
|
||||
QMap<QString, QString> m_defaults;
|
||||
QMap<QString, QString> m_overrides;
|
||||
|
||||
@@ -130,19 +130,8 @@ void DocPropsApp::saveToXmlFile(QIODevice *device) const
|
||||
writer.writeEndDocument();
|
||||
}
|
||||
|
||||
QByteArray DocPropsApp::saveToXmlData() const
|
||||
bool DocPropsApp::loadFromXmlFile(QIODevice *device)
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
DocPropsApp DocPropsApp::loadFromXmlFile(QIODevice *device)
|
||||
{
|
||||
DocPropsApp props;
|
||||
QXmlStreamReader reader(device);
|
||||
while (!reader.atEnd()) {
|
||||
QXmlStreamReader::TokenType token = reader.readNext();
|
||||
@@ -151,9 +140,9 @@ DocPropsApp DocPropsApp::loadFromXmlFile(QIODevice *device)
|
||||
continue;
|
||||
|
||||
if (reader.name() == QStringLiteral("Manager")) {
|
||||
props.setProperty(QStringLiteral("manager"), reader.readElementText());
|
||||
setProperty(QStringLiteral("manager"), reader.readElementText());
|
||||
} else if (reader.name() == QStringLiteral("Company")) {
|
||||
props.setProperty(QStringLiteral("company"), reader.readElementText());
|
||||
setProperty(QStringLiteral("company"), reader.readElementText());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,15 +150,7 @@ DocPropsApp DocPropsApp::loadFromXmlFile(QIODevice *device)
|
||||
qDebug("Error when read doc props app file.");
|
||||
}
|
||||
}
|
||||
return props;
|
||||
}
|
||||
|
||||
DocPropsApp DocPropsApp::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
return loadFromXmlFile(&buffer);
|
||||
return true;
|
||||
}
|
||||
|
||||
} //namespace
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
//
|
||||
|
||||
#include "xlsxglobal.h"
|
||||
#include "xlsxooxmlfile.h"
|
||||
#include <QList>
|
||||
#include <QPair>
|
||||
#include <QStringList>
|
||||
@@ -46,7 +47,7 @@ class QIODevice;
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
class XLSX_AUTOTEST_EXPORT DocPropsApp
|
||||
class XLSX_AUTOTEST_EXPORT DocPropsApp : public OOXmlFile
|
||||
{
|
||||
public:
|
||||
DocPropsApp();
|
||||
@@ -58,10 +59,8 @@ public:
|
||||
QString property(const QString &name) const;
|
||||
QStringList propertyNames() const;
|
||||
|
||||
QByteArray saveToXmlData() const;
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
static DocPropsApp loadFromXmlFile(QIODevice *device);
|
||||
static DocPropsApp loadFromXmlData(const QByteArray &data);
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
|
||||
private:
|
||||
QStringList m_titlesOfPartsList;
|
||||
|
||||
@@ -124,19 +124,8 @@ void DocPropsCore::saveToXmlFile(QIODevice *device) const
|
||||
writer.writeEndDocument();
|
||||
}
|
||||
|
||||
QByteArray DocPropsCore::saveToXmlData() const
|
||||
bool DocPropsCore::loadFromXmlFile(QIODevice *device)
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
DocPropsCore DocPropsCore::loadFromXmlFile(QIODevice *device)
|
||||
{
|
||||
DocPropsCore props;
|
||||
QXmlStreamReader reader(device);
|
||||
|
||||
const QString cp = QStringLiteral("http://schemas.openxmlformats.org/package/2006/metadata/core-properties");
|
||||
@@ -149,21 +138,21 @@ DocPropsCore DocPropsCore::loadFromXmlFile(QIODevice *device)
|
||||
const QStringRef nsUri = reader.namespaceUri();
|
||||
const QStringRef name = reader.name();
|
||||
if (name == QStringLiteral("subject") && nsUri == dc) {
|
||||
props.setProperty(QStringLiteral("subject"), reader.readElementText());
|
||||
setProperty(QStringLiteral("subject"), reader.readElementText());
|
||||
} else if (name == QStringLiteral("title") && nsUri == dc) {
|
||||
props.setProperty(QStringLiteral("title"), reader.readElementText());
|
||||
setProperty(QStringLiteral("title"), reader.readElementText());
|
||||
} else if (name == QStringLiteral("creator") && nsUri == dc) {
|
||||
props.setProperty(QStringLiteral("creator"), reader.readElementText());
|
||||
setProperty(QStringLiteral("creator"), reader.readElementText());
|
||||
} else if (name == QStringLiteral("description") && nsUri == dc) {
|
||||
props.setProperty(QStringLiteral("description"), reader.readElementText());
|
||||
setProperty(QStringLiteral("description"), reader.readElementText());
|
||||
} else if (name == QStringLiteral("keywords") && nsUri == cp) {
|
||||
props.setProperty(QStringLiteral("keywords"), reader.readElementText());
|
||||
setProperty(QStringLiteral("keywords"), reader.readElementText());
|
||||
} else if (name == QStringLiteral("created") && nsUri == dcterms) {
|
||||
props.setProperty(QStringLiteral("created"), reader.readElementText());
|
||||
setProperty(QStringLiteral("created"), reader.readElementText());
|
||||
} else if (name == QStringLiteral("category") && nsUri == cp) {
|
||||
props.setProperty(QStringLiteral("category"), reader.readElementText());
|
||||
setProperty(QStringLiteral("category"), reader.readElementText());
|
||||
} else if (name == QStringLiteral("contentStatus") && nsUri == cp) {
|
||||
props.setProperty(QStringLiteral("status"), reader.readElementText());
|
||||
setProperty(QStringLiteral("status"), reader.readElementText());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,16 +161,7 @@ DocPropsCore DocPropsCore::loadFromXmlFile(QIODevice *device)
|
||||
|
||||
}
|
||||
}
|
||||
return props;
|
||||
return true;
|
||||
}
|
||||
|
||||
DocPropsCore DocPropsCore::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
return loadFromXmlFile(&buffer);
|
||||
}
|
||||
|
||||
|
||||
} //namespace
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
//
|
||||
|
||||
#include "xlsxglobal.h"
|
||||
#include "xlsxooxmlfile.h"
|
||||
#include <QMap>
|
||||
#include <QStringList>
|
||||
|
||||
@@ -44,7 +45,7 @@ class QIODevice;
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
class XLSX_AUTOTEST_EXPORT DocPropsCore
|
||||
class XLSX_AUTOTEST_EXPORT DocPropsCore : public OOXmlFile
|
||||
{
|
||||
public:
|
||||
explicit DocPropsCore();
|
||||
@@ -54,9 +55,7 @@ public:
|
||||
QStringList propertyNames() const;
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
QByteArray saveToXmlData() const;
|
||||
static DocPropsCore loadFromXmlFile(QIODevice *device);
|
||||
static DocPropsCore loadFromXmlData(const QByteArray &data);
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
|
||||
private:
|
||||
QMap<QString, QString> m_properties;
|
||||
|
||||
@@ -119,7 +119,8 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
//In normal case, this should be "docProps/core.xml"
|
||||
QString docPropsCore_Name = rels_core[0].target;
|
||||
|
||||
DocPropsCore props = DocPropsCore::loadFromXmlData(zipReader.fileData(docPropsCore_Name));
|
||||
DocPropsCore props;
|
||||
props.loadFromXmlData(zipReader.fileData(docPropsCore_Name));
|
||||
foreach (QString name, props.propertyNames())
|
||||
q->setDocumentProperty(name, props.property(name));
|
||||
}
|
||||
@@ -131,7 +132,8 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
//In normal case, this should be "docProps/app.xml"
|
||||
QString docPropsApp_Name = rels_app[0].target;
|
||||
|
||||
DocPropsApp props = DocPropsApp::loadFromXmlData(zipReader.fileData(docPropsApp_Name));
|
||||
DocPropsApp props;
|
||||
props.loadFromXmlData(zipReader.fileData(docPropsApp_Name));
|
||||
foreach (QString name, props.propertyNames())
|
||||
q->setDocumentProperty(name, props.property(name));
|
||||
}
|
||||
@@ -146,7 +148,6 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
QString xlworkbook_Dir = xlworkbook_PathList[0];
|
||||
workbook->relationships().loadFromXmlData(zipReader.fileData(getRelFilePath(xlworkbook_Path)));
|
||||
workbook->loadFromXmlData(zipReader.fileData(xlworkbook_Path));
|
||||
QList<XlsxSheetItemInfo> sheetNameIdPairList = workbook->d_func()->sheetItemInfoList;
|
||||
|
||||
//load styles
|
||||
QList<XlsxRelationship> rels_styles = workbook->relationships().documentRelationships(QStringLiteral("/styles"));
|
||||
@@ -156,7 +157,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
QString path = xlworkbook_Dir + QLatin1String("/") + name;
|
||||
QSharedPointer<Styles> styles (new Styles(true));
|
||||
styles->loadFromXmlData(zipReader.fileData(path));
|
||||
workbook->d_ptr->styles = styles;
|
||||
workbook->d_func()->styles = styles;
|
||||
}
|
||||
|
||||
//load sharedStrings
|
||||
@@ -165,7 +166,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
//In normal case this should be sharedStrings.xml which in xl
|
||||
QString name = rels_sharedStrings[0].target;
|
||||
QString path = xlworkbook_Dir + QLatin1String("/") + name;
|
||||
workbook->d_ptr->sharedStrings->loadFromXmlData(zipReader.fileData(path));
|
||||
workbook->d_func()->sharedStrings->loadFromXmlData(zipReader.fileData(path));
|
||||
}
|
||||
|
||||
//load theme
|
||||
@@ -182,6 +183,8 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
if (rels_worksheets.isEmpty())
|
||||
return false;
|
||||
|
||||
QList<XlsxSheetItemInfo> sheetNameIdPairList = workbook->d_func()->sheetItemInfoList;
|
||||
|
||||
for (int i=0; i<sheetNameIdPairList.size(); ++i) {
|
||||
XlsxSheetItemInfo info = sheetNameIdPairList[i];
|
||||
QString worksheet_path = xlworkbook_Dir + QLatin1String("/") + workbook->relationships().getRelationshipById(info.rId).target;
|
||||
|
||||
@@ -43,15 +43,6 @@ Drawing::~Drawing()
|
||||
qDeleteAll(anchors);
|
||||
}
|
||||
|
||||
QByteArray Drawing::saveToXmlData() const
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
return data;
|
||||
}
|
||||
|
||||
void Drawing::saveToXmlFile(QIODevice *device) const
|
||||
{
|
||||
relationships.clear();
|
||||
@@ -92,13 +83,4 @@ bool Drawing::loadFromXmlFile(QIODevice *device)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Drawing::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
|
||||
return loadFromXmlFile(&buffer);
|
||||
}
|
||||
|
||||
} // namespace QXlsx
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
//
|
||||
|
||||
#include "xlsxrelationships_p.h"
|
||||
#include "xlsxooxmlfile.h"
|
||||
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
@@ -52,15 +53,13 @@ class DrawingAnchor;
|
||||
class Workbook;
|
||||
class MediaFile;
|
||||
|
||||
class Drawing
|
||||
class Drawing : public OOXmlFile
|
||||
{
|
||||
public:
|
||||
Drawing(Workbook *workbook);
|
||||
~Drawing();
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
QByteArray saveToXmlData() const;
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
bool loadFromXmlData(const QByteArray &data);
|
||||
|
||||
Workbook *workbook;
|
||||
QList<DrawingAnchor *> anchors;
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
/****************************************************************************
|
||||
** Copyright (c) 2013-2014 Debao Zhang <hello@debao.me>
|
||||
** All right reserved.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining
|
||||
** a copy of this software and associated documentation files (the
|
||||
** "Software"), to deal in the Software without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Software, and to
|
||||
** permit persons to whom the Software is furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be
|
||||
** included in all copies or substantial portions of the Software.
|
||||
**
|
||||
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "xlsxooxmlfile.h"
|
||||
#include "xlsxooxmlfile_p.h"
|
||||
|
||||
#include <QBuffer>
|
||||
#include <QByteArray>
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
OOXmlFilePrivate::OOXmlFilePrivate(OOXmlFile *q)
|
||||
:q_ptr(q)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
*
|
||||
* \class OOXmlFile
|
||||
*
|
||||
* Base class of all the ooxml part file.
|
||||
*/
|
||||
|
||||
OOXmlFile::OOXmlFile()
|
||||
:d_ptr(new OOXmlFilePrivate(this))
|
||||
{
|
||||
}
|
||||
|
||||
OOXmlFile::OOXmlFile(OOXmlFilePrivate *d)
|
||||
:d_ptr(d)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
OOXmlFile::~OOXmlFile()
|
||||
{
|
||||
delete d_ptr;
|
||||
}
|
||||
|
||||
QByteArray OOXmlFile::saveToXmlData() const
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
bool OOXmlFile::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
|
||||
return loadFromXmlFile(&buffer);
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE_XLSX
|
||||
@@ -0,0 +1,58 @@
|
||||
/****************************************************************************
|
||||
** Copyright (c) 2013-2014 Debao Zhang <hello@debao.me>
|
||||
** All right reserved.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining
|
||||
** a copy of this software and associated documentation files (the
|
||||
** "Software"), to deal in the Software without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Software, and to
|
||||
** permit persons to whom the Software is furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be
|
||||
** included in all copies or substantial portions of the Software.
|
||||
**
|
||||
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QXLSX_XLSXOOXMLFILE_H
|
||||
#define QXLSX_XLSXOOXMLFILE_H
|
||||
|
||||
#include "xlsxglobal.h"
|
||||
|
||||
class QIODevice;
|
||||
class QByteArray;
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
class OOXmlFilePrivate;
|
||||
|
||||
class Q_XLSX_EXPORT OOXmlFile
|
||||
{
|
||||
public:
|
||||
virtual ~OOXmlFile();
|
||||
|
||||
virtual void saveToXmlFile(QIODevice *device) const = 0;
|
||||
virtual bool loadFromXmlFile(QIODevice *device) = 0;
|
||||
|
||||
virtual QByteArray saveToXmlData() const;
|
||||
virtual bool loadFromXmlData(const QByteArray &data);
|
||||
|
||||
protected:
|
||||
OOXmlFile();
|
||||
OOXmlFile(OOXmlFilePrivate *d);
|
||||
|
||||
OOXmlFilePrivate *d_ptr;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE_XLSX
|
||||
|
||||
#endif // QXLSX_XLSXOOXMLFILE_H
|
||||
@@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
** Copyright (c) 2013-2014 Debao Zhang <hello@debao.me>
|
||||
** All right reserved.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining
|
||||
** a copy of this software and associated documentation files (the
|
||||
** "Software"), to deal in the Software without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Software, and to
|
||||
** permit persons to whom the Software is furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be
|
||||
** included in all copies or substantial portions of the Software.
|
||||
**
|
||||
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef XLSXOOXMLFILE_P_H
|
||||
#define XLSXOOXMLFILE_P_H
|
||||
|
||||
//
|
||||
// W A R N I N G
|
||||
// -------------
|
||||
//
|
||||
// This file is not part of the Qt Xlsx API. It exists for the convenience
|
||||
// of the Qt Xlsx. This header file may change from
|
||||
// version to version without notice, or even be removed.
|
||||
//
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include "xlsxooxmlfile.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
class XLSX_AUTOTEST_EXPORT OOXmlFilePrivate
|
||||
{
|
||||
Q_DECLARE_PUBLIC(OOXmlFile)
|
||||
|
||||
public:
|
||||
OOXmlFilePrivate(OOXmlFile *q);
|
||||
|
||||
OOXmlFile *q_ptr;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE_XLSX
|
||||
|
||||
#endif // XLSXOOXMLFILE_P_H
|
||||
@@ -242,16 +242,6 @@ void SharedStrings::saveToXmlFile(QIODevice *device) const
|
||||
writer.writeEndDocument();
|
||||
}
|
||||
|
||||
QByteArray SharedStrings::saveToXmlData() const
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void SharedStrings::readString(QXmlStreamReader &reader)
|
||||
{
|
||||
Q_ASSERT(reader.name() == QLatin1String("si"));
|
||||
@@ -384,13 +374,4 @@ bool SharedStrings::loadFromXmlFile(QIODevice *device)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SharedStrings::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
|
||||
return loadFromXmlFile(&buffer);
|
||||
}
|
||||
|
||||
} //namespace
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
|
||||
#include "xlsxglobal.h"
|
||||
#include "xlsxrichstring.h"
|
||||
#include "xlsxooxmlfile.h"
|
||||
#include <QHash>
|
||||
#include <QStringList>
|
||||
#include <QSharedPointer>
|
||||
@@ -60,7 +61,7 @@ public:
|
||||
int count;
|
||||
};
|
||||
|
||||
class XLSX_AUTOTEST_EXPORT SharedStrings
|
||||
class XLSX_AUTOTEST_EXPORT SharedStrings : public OOXmlFile
|
||||
{
|
||||
public:
|
||||
SharedStrings();
|
||||
@@ -79,9 +80,7 @@ public:
|
||||
QList<RichString> getSharedStrings() const;
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
QByteArray saveToXmlData() const;
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
bool loadFromXmlData(const QByteArray &data);
|
||||
|
||||
private:
|
||||
void readString(QXmlStreamReader &reader); // <si>
|
||||
|
||||
+12
-31
@@ -265,17 +265,7 @@ void Styles::addDxfFormat(const Format &format, bool force)
|
||||
}
|
||||
}
|
||||
|
||||
QByteArray Styles::saveToXmlData()
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void Styles::saveToXmlFile(QIODevice *device)
|
||||
void Styles::saveToXmlFile(QIODevice *device) const
|
||||
{
|
||||
QXmlStreamWriter writer(device);
|
||||
|
||||
@@ -321,7 +311,7 @@ void Styles::saveToXmlFile(QIODevice *device)
|
||||
writer.writeEndDocument();
|
||||
}
|
||||
|
||||
void Styles::writeNumFmts(QXmlStreamWriter &writer)
|
||||
void Styles::writeNumFmts(QXmlStreamWriter &writer) const
|
||||
{
|
||||
if (m_customNumFmtIdMap.size() == 0)
|
||||
return;
|
||||
@@ -341,7 +331,7 @@ void Styles::writeNumFmts(QXmlStreamWriter &writer)
|
||||
|
||||
/*
|
||||
*/
|
||||
void Styles::writeFonts(QXmlStreamWriter &writer)
|
||||
void Styles::writeFonts(QXmlStreamWriter &writer) const
|
||||
{
|
||||
writer.writeStartElement(QStringLiteral("fonts"));
|
||||
writer.writeAttribute(QStringLiteral("count"), QString::number(m_fontsList.count()));
|
||||
@@ -350,7 +340,7 @@ void Styles::writeFonts(QXmlStreamWriter &writer)
|
||||
writer.writeEndElement();//fonts
|
||||
}
|
||||
|
||||
void Styles::writeFont(QXmlStreamWriter &writer, const Format &format, bool isDxf)
|
||||
void Styles::writeFont(QXmlStreamWriter &writer, const Format &format, bool isDxf) const
|
||||
{
|
||||
writer.writeStartElement(QStringLiteral("font"));
|
||||
|
||||
@@ -431,7 +421,7 @@ void Styles::writeFont(QXmlStreamWriter &writer, const Format &format, bool isDx
|
||||
writer.writeEndElement(); //font
|
||||
}
|
||||
|
||||
void Styles::writeFills(QXmlStreamWriter &writer)
|
||||
void Styles::writeFills(QXmlStreamWriter &writer) const
|
||||
{
|
||||
writer.writeStartElement(QStringLiteral("fills"));
|
||||
writer.writeAttribute(QStringLiteral("count"), QString::number(m_fillsList.size()));
|
||||
@@ -442,7 +432,7 @@ void Styles::writeFills(QXmlStreamWriter &writer)
|
||||
writer.writeEndElement(); //fills
|
||||
}
|
||||
|
||||
void Styles::writeFill(QXmlStreamWriter &writer, const Format &fill, bool isDxf)
|
||||
void Styles::writeFill(QXmlStreamWriter &writer, const Format &fill, bool isDxf) const
|
||||
{
|
||||
static QMap<int, QString> patternStrings;
|
||||
if (patternStrings.isEmpty()) {
|
||||
@@ -491,7 +481,7 @@ void Styles::writeFill(QXmlStreamWriter &writer, const Format &fill, bool isDxf)
|
||||
writer.writeEndElement();//fill
|
||||
}
|
||||
|
||||
void Styles::writeBorders(QXmlStreamWriter &writer)
|
||||
void Styles::writeBorders(QXmlStreamWriter &writer) const
|
||||
{
|
||||
writer.writeStartElement(QStringLiteral("borders"));
|
||||
writer.writeAttribute(QStringLiteral("count"), QString::number(m_bordersList.count()));
|
||||
@@ -500,7 +490,7 @@ void Styles::writeBorders(QXmlStreamWriter &writer)
|
||||
writer.writeEndElement();//borders
|
||||
}
|
||||
|
||||
void Styles::writeBorder(QXmlStreamWriter &writer, const Format &border, bool isDxf)
|
||||
void Styles::writeBorder(QXmlStreamWriter &writer, const Format &border, bool isDxf) const
|
||||
{
|
||||
writer.writeStartElement(QStringLiteral("border"));
|
||||
if (border.hasProperty(FormatPrivate::P_Border_DiagonalType)) {
|
||||
@@ -532,7 +522,7 @@ void Styles::writeBorder(QXmlStreamWriter &writer, const Format &border, bool is
|
||||
writer.writeEndElement();//border
|
||||
}
|
||||
|
||||
void Styles::writeSubBorder(QXmlStreamWriter &writer, const QString &type, int style, const XlsxColor &color)
|
||||
void Styles::writeSubBorder(QXmlStreamWriter &writer, const QString &type, int style, const XlsxColor &color) const
|
||||
{
|
||||
if (style == Format::BorderNone) {
|
||||
writer.writeEmptyElement(type);
|
||||
@@ -564,7 +554,7 @@ void Styles::writeSubBorder(QXmlStreamWriter &writer, const QString &type, int s
|
||||
writer.writeEndElement();//type
|
||||
}
|
||||
|
||||
void Styles::writeCellXfs(QXmlStreamWriter &writer)
|
||||
void Styles::writeCellXfs(QXmlStreamWriter &writer) const
|
||||
{
|
||||
writer.writeStartElement(QStringLiteral("cellXfs"));
|
||||
writer.writeAttribute(QStringLiteral("count"), QString::number(m_xf_formatsList.size()));
|
||||
@@ -650,7 +640,7 @@ void Styles::writeCellXfs(QXmlStreamWriter &writer)
|
||||
writer.writeEndElement();//cellXfs
|
||||
}
|
||||
|
||||
void Styles::writeDxfs(QXmlStreamWriter &writer)
|
||||
void Styles::writeDxfs(QXmlStreamWriter &writer) const
|
||||
{
|
||||
writer.writeStartElement(QStringLiteral("dxfs"));
|
||||
writer.writeAttribute(QStringLiteral("count"), QString::number(m_dxf_formatsList.size()));
|
||||
@@ -659,7 +649,7 @@ void Styles::writeDxfs(QXmlStreamWriter &writer)
|
||||
writer.writeEndElement(); //dxfs
|
||||
}
|
||||
|
||||
void Styles::writeDxf(QXmlStreamWriter &writer, const Format &format)
|
||||
void Styles::writeDxf(QXmlStreamWriter &writer, const Format &format) const
|
||||
{
|
||||
writer.writeStartElement(QStringLiteral("dxf"));
|
||||
|
||||
@@ -1259,15 +1249,6 @@ bool Styles::loadFromXmlFile(QIODevice *device)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Styles::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
|
||||
return loadFromXmlFile(&buffer);
|
||||
}
|
||||
|
||||
QColor Styles::getColorByIndex(int idx)
|
||||
{
|
||||
if (m_indexedColors.isEmpty()) {
|
||||
|
||||
+14
-15
@@ -38,6 +38,7 @@
|
||||
|
||||
#include "xlsxglobal.h"
|
||||
#include "xlsxformat.h"
|
||||
#include "xlsxooxmlfile.h"
|
||||
#include <QSharedPointer>
|
||||
#include <QHash>
|
||||
#include <QList>
|
||||
@@ -63,7 +64,7 @@ struct XlsxFormatNumberData
|
||||
QString formatString;
|
||||
};
|
||||
|
||||
class XLSX_AUTOTEST_EXPORT Styles
|
||||
class XLSX_AUTOTEST_EXPORT Styles : public OOXmlFile
|
||||
{
|
||||
public:
|
||||
Styles(bool createEmpty=false);
|
||||
@@ -73,10 +74,8 @@ public:
|
||||
void addDxfFormat(const Format &format, bool force=false);
|
||||
Format dxfFormat(int idx) const;
|
||||
|
||||
QByteArray saveToXmlData();
|
||||
void saveToXmlFile(QIODevice *device);
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
bool loadFromXmlData(const QByteArray &data);
|
||||
|
||||
QColor getColorByIndex(int idx);
|
||||
|
||||
@@ -86,17 +85,17 @@ private:
|
||||
|
||||
void fixNumFmt(const Format &format);
|
||||
|
||||
void writeNumFmts(QXmlStreamWriter &writer);
|
||||
void writeFonts(QXmlStreamWriter &writer);
|
||||
void writeFont(QXmlStreamWriter &writer, const Format &font, bool isDxf = false);
|
||||
void writeFills(QXmlStreamWriter &writer);
|
||||
void writeFill(QXmlStreamWriter &writer, const Format &fill, bool isDxf = false);
|
||||
void writeBorders(QXmlStreamWriter &writer);
|
||||
void writeBorder(QXmlStreamWriter &writer, const Format &border, bool isDxf = false);
|
||||
void writeSubBorder(QXmlStreamWriter &writer, const QString &type, int style, const XlsxColor &color);
|
||||
void writeCellXfs(QXmlStreamWriter &writer);
|
||||
void writeDxfs(QXmlStreamWriter &writer);
|
||||
void writeDxf(QXmlStreamWriter &writer, const Format &format);
|
||||
void writeNumFmts(QXmlStreamWriter &writer) const;
|
||||
void writeFonts(QXmlStreamWriter &writer) const;
|
||||
void writeFont(QXmlStreamWriter &writer, const Format &font, bool isDxf = false) const;
|
||||
void writeFills(QXmlStreamWriter &writer) const;
|
||||
void writeFill(QXmlStreamWriter &writer, const Format &fill, bool isDxf = false) const;
|
||||
void writeBorders(QXmlStreamWriter &writer) const;
|
||||
void writeBorder(QXmlStreamWriter &writer, const Format &border, bool isDxf = false) const;
|
||||
void writeSubBorder(QXmlStreamWriter &writer, const QString &type, int style, const XlsxColor &color) const;
|
||||
void writeCellXfs(QXmlStreamWriter &writer) const;
|
||||
void writeDxfs(QXmlStreamWriter &writer) const;
|
||||
void writeDxf(QXmlStreamWriter &writer, const Format &format) const;
|
||||
|
||||
bool readNumFmts(QXmlStreamReader &reader);
|
||||
bool readFonts(QXmlStreamReader &reader);
|
||||
|
||||
@@ -221,9 +221,16 @@ QByteArray Theme::saveToXmlData() const
|
||||
return xmlData;
|
||||
}
|
||||
|
||||
void Theme::loadFromXmlData(const QByteArray &data)
|
||||
bool Theme::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
xmlData = data;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Theme::loadFromXmlFile(QIODevice *device)
|
||||
{
|
||||
xmlData = device->readAll();
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -35,20 +35,22 @@
|
||||
//
|
||||
// We mean it.
|
||||
//
|
||||
#include "xlsxooxmlfile.h"
|
||||
|
||||
#include <QString>
|
||||
class QIODevice;
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
class Theme
|
||||
class Theme : public OOXmlFile
|
||||
{
|
||||
public:
|
||||
Theme();
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
QByteArray saveToXmlData() const;
|
||||
void loadFromXmlData(const QByteArray &data);
|
||||
bool loadFromXmlData(const QByteArray &data);
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
|
||||
QByteArray xmlData;
|
||||
};
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
WorkbookPrivate::WorkbookPrivate(Workbook *q) :
|
||||
q_ptr(q)
|
||||
OOXmlFilePrivate(q)
|
||||
{
|
||||
sharedStrings = QSharedPointer<SharedStrings> (new SharedStrings);
|
||||
styles = QSharedPointer<Styles>(new Styles);
|
||||
@@ -63,15 +63,14 @@ WorkbookPrivate::WorkbookPrivate(Workbook *q) :
|
||||
last_sheet_id = 0;
|
||||
}
|
||||
|
||||
Workbook::Workbook() :
|
||||
d_ptr(new WorkbookPrivate(this))
|
||||
Workbook::Workbook()
|
||||
: OOXmlFile(new WorkbookPrivate(this))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Workbook::~Workbook()
|
||||
{
|
||||
delete d_ptr;
|
||||
}
|
||||
|
||||
bool Workbook::isDate1904() const
|
||||
@@ -477,16 +476,6 @@ void Workbook::saveToXmlFile(QIODevice *device) const
|
||||
writer.writeEndDocument();
|
||||
}
|
||||
|
||||
QByteArray Workbook::saveToXmlData() const
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
bool Workbook::loadFromXmlFile(QIODevice *device)
|
||||
{
|
||||
Q_D(Workbook);
|
||||
@@ -549,15 +538,6 @@ bool Workbook::loadFromXmlFile(QIODevice *device)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Workbook::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
|
||||
return loadFromXmlFile(&buffer);
|
||||
}
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
*/
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#define XLSXWORKBOOK_H
|
||||
|
||||
#include "xlsxglobal.h"
|
||||
#include "xlsxooxmlfile.h"
|
||||
#include <QList>
|
||||
#include <QImage>
|
||||
#include <QSharedPointer>
|
||||
@@ -45,7 +46,7 @@ class DocumentPrivate;
|
||||
class MediaFile;
|
||||
|
||||
class WorkbookPrivate;
|
||||
class Q_XLSX_EXPORT Workbook
|
||||
class Q_XLSX_EXPORT Workbook : public OOXmlFile
|
||||
{
|
||||
Q_DECLARE_PRIVATE(Workbook)
|
||||
public:
|
||||
@@ -89,9 +90,7 @@ private:
|
||||
Workbook();
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
QByteArray saveToXmlData() const;
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
bool loadFromXmlData(const QByteArray &data);
|
||||
Relationships &relationships();
|
||||
|
||||
SharedStrings *sharedStrings() const;
|
||||
@@ -101,8 +100,6 @@ private:
|
||||
QList<Drawing *> drawings();
|
||||
QStringList worksheetNames() const;
|
||||
Worksheet *addWorksheet(const QString &name, int sheetId);
|
||||
|
||||
WorkbookPrivate * const d_ptr;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE_XLSX
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
//
|
||||
|
||||
#include "xlsxworkbook.h"
|
||||
#include "xlsxooxmlfile_p.h"
|
||||
#include "xlsxtheme_p.h"
|
||||
#include "xlsxrelationships_p.h"
|
||||
|
||||
@@ -73,13 +74,12 @@ struct XlsxDefineNameData
|
||||
int sheetId;
|
||||
};
|
||||
|
||||
class WorkbookPrivate
|
||||
class WorkbookPrivate : public OOXmlFilePrivate
|
||||
{
|
||||
Q_DECLARE_PUBLIC(Workbook)
|
||||
public:
|
||||
WorkbookPrivate(Workbook *q);
|
||||
|
||||
Workbook *q_ptr;
|
||||
mutable Relationships relationships;
|
||||
|
||||
QSharedPointer<SharedStrings> sharedStrings;
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
WorksheetPrivate::WorksheetPrivate(Worksheet *p) :
|
||||
q_ptr(p)
|
||||
WorksheetPrivate::WorksheetPrivate(Worksheet *p)
|
||||
: OOXmlFilePrivate(p)
|
||||
, windowProtection(false), showFormulas(false), showGridLines(true), showRowColHeaders(true)
|
||||
, showZeros(true), rightToLeft(false), tabSelected(false), showRuler(false)
|
||||
, showOutlineSymbols(true), showWhiteSpace(true)
|
||||
@@ -174,13 +174,13 @@ int WorksheetPrivate::checkDimensions(int row, int col, bool ignore_row, bool ig
|
||||
* (Note: id is not the index of the sheet in workbook)
|
||||
*/
|
||||
Worksheet::Worksheet(const QString &name, int id, Workbook *workbook) :
|
||||
d_ptr(new WorksheetPrivate(this))
|
||||
OOXmlFile(new WorksheetPrivate(this))
|
||||
{
|
||||
d_ptr->name = name;
|
||||
d_ptr->id = id;
|
||||
d_func()->name = name;
|
||||
d_func()->id = id;
|
||||
if (!workbook) //For unit test propose only. Ignore the memery leak.
|
||||
workbook = new Workbook;
|
||||
d_ptr->workbook = workbook;
|
||||
d_func()->workbook = workbook;
|
||||
}
|
||||
|
||||
QSharedPointer<Worksheet> Worksheet::copy(const QString &distName, int distId) const
|
||||
@@ -188,7 +188,7 @@ QSharedPointer<Worksheet> Worksheet::copy(const QString &distName, int distId) c
|
||||
Q_D(const Worksheet);
|
||||
QSharedPointer<Worksheet> sheet(new Worksheet(distName, distId, d->workbook));
|
||||
|
||||
WorksheetPrivate *sheet_d = sheet->d_ptr;
|
||||
WorksheetPrivate *sheet_d = sheet->d_func();
|
||||
|
||||
sheet_d->dimension = d->dimension;
|
||||
|
||||
@@ -223,7 +223,6 @@ QSharedPointer<Worksheet> Worksheet::copy(const QString &distName, int distId) c
|
||||
|
||||
Worksheet::~Worksheet()
|
||||
{
|
||||
delete d_ptr;
|
||||
}
|
||||
|
||||
bool Worksheet::isChartsheet() const
|
||||
@@ -1767,16 +1766,6 @@ int WorksheetPrivate::colPixelsSize(int col) const
|
||||
return pixels;
|
||||
}
|
||||
|
||||
QByteArray Worksheet::saveToXmlData() const
|
||||
{
|
||||
QByteArray data;
|
||||
QBuffer buffer(&data);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
saveToXmlFile(&buffer);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
QSharedPointer<Cell> WorksheetPrivate::loadXmlNumericCellData(QXmlStreamReader &reader)
|
||||
{
|
||||
Q_ASSERT(reader.name() == QLatin1String("c"));
|
||||
@@ -2133,15 +2122,6 @@ bool Worksheet::loadFromXmlFile(QIODevice *device)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Worksheet::loadFromXmlData(const QByteArray &data)
|
||||
{
|
||||
QBuffer buffer;
|
||||
buffer.setData(data);
|
||||
buffer.open(QIODevice::ReadOnly);
|
||||
|
||||
return loadFromXmlFile(&buffer);
|
||||
}
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
* Unit test can use this member to get sharedString object.
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "xlsxglobal.h"
|
||||
#include "xlsxcell.h"
|
||||
#include "xlsxcellrange.h"
|
||||
#include "xlsxooxmlfile.h"
|
||||
#include <QStringList>
|
||||
#include <QMap>
|
||||
#include <QVariant>
|
||||
@@ -52,7 +53,7 @@ class RichString;
|
||||
class Relationships;
|
||||
|
||||
class WorksheetPrivate;
|
||||
class Q_XLSX_EXPORT Worksheet
|
||||
class Q_XLSX_EXPORT Worksheet : public OOXmlFile
|
||||
{
|
||||
Q_DECLARE_PRIVATE(Worksheet)
|
||||
public:
|
||||
@@ -142,9 +143,7 @@ private:
|
||||
void setSheetName(const QString &sheetName);
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
QByteArray saveToXmlData() const;
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
bool loadFromXmlData(const QByteArray &data);
|
||||
|
||||
bool isChartsheet() const;
|
||||
bool isHidden() const;
|
||||
@@ -154,8 +153,6 @@ private:
|
||||
Drawing *drawing() const;
|
||||
void setDrawing(Drawing *d);
|
||||
QString drawingPath() const;
|
||||
|
||||
WorksheetPrivate * const d_ptr;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE_XLSX
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
|
||||
#include "xlsxglobal.h"
|
||||
#include "xlsxworksheet.h"
|
||||
#include "xlsxooxmlfile_p.h"
|
||||
#include "xlsxcell.h"
|
||||
#include "xlsxdatavalidation.h"
|
||||
#include "xlsxconditionalformatting.h"
|
||||
@@ -112,7 +113,7 @@ struct XlsxColumnInfo
|
||||
bool collapsed;
|
||||
};
|
||||
|
||||
class XLSX_AUTOTEST_EXPORT WorksheetPrivate
|
||||
class XLSX_AUTOTEST_EXPORT WorksheetPrivate : public OOXmlFilePrivate
|
||||
{
|
||||
Q_DECLARE_PUBLIC(Worksheet)
|
||||
public:
|
||||
@@ -143,7 +144,6 @@ public:
|
||||
|
||||
SharedStrings *sharedStrings() const;
|
||||
|
||||
Worksheet *q_ptr;
|
||||
Workbook *workbook;
|
||||
mutable Relationships relationships;
|
||||
Drawing *drawing;
|
||||
|
||||
Reference in New Issue
Block a user