Introduce CreateFlag for all the ooxmlfile
This commit is contained in:
@@ -31,8 +31,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
AbstractOOXmlFilePrivate::AbstractOOXmlFilePrivate(AbstractOOXmlFile *q)
|
||||
:relationships(new Relationships), q_ptr(q)
|
||||
AbstractOOXmlFilePrivate::AbstractOOXmlFilePrivate(AbstractOOXmlFile *q, AbstractOOXmlFile::CreateFlag flag=AbstractOOXmlFile::F_NewFromScratch)
|
||||
:relationships(new Relationships), flag(flag), q_ptr(q)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -50,8 +50,8 @@ AbstractOOXmlFilePrivate::~AbstractOOXmlFilePrivate()
|
||||
* Base class of all the ooxml part file.
|
||||
*/
|
||||
|
||||
AbstractOOXmlFile::AbstractOOXmlFile()
|
||||
:d_ptr(new AbstractOOXmlFilePrivate(this))
|
||||
AbstractOOXmlFile::AbstractOOXmlFile(CreateFlag flag)
|
||||
:d_ptr(new AbstractOOXmlFilePrivate(this, flag))
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,12 @@ class Q_XLSX_EXPORT AbstractOOXmlFile
|
||||
{
|
||||
Q_DECLARE_PRIVATE(AbstractOOXmlFile)
|
||||
public:
|
||||
enum CreateFlag
|
||||
{
|
||||
F_NewFromScratch,
|
||||
F_LoadFromExists
|
||||
};
|
||||
|
||||
virtual ~AbstractOOXmlFile();
|
||||
|
||||
virtual void saveToXmlFile(QIODevice *device) const = 0;
|
||||
@@ -51,8 +57,9 @@ public:
|
||||
|
||||
void setFilePath(const QString path);
|
||||
QString filePath() const;
|
||||
|
||||
protected:
|
||||
AbstractOOXmlFile();
|
||||
AbstractOOXmlFile(CreateFlag flag);
|
||||
AbstractOOXmlFile(AbstractOOXmlFilePrivate *d);
|
||||
|
||||
AbstractOOXmlFilePrivate *d_ptr;
|
||||
|
||||
@@ -49,12 +49,13 @@ class XLSX_AUTOTEST_EXPORT AbstractOOXmlFilePrivate
|
||||
Q_DECLARE_PUBLIC(AbstractOOXmlFile)
|
||||
|
||||
public:
|
||||
AbstractOOXmlFilePrivate(AbstractOOXmlFile *q);
|
||||
AbstractOOXmlFilePrivate(AbstractOOXmlFile *q, AbstractOOXmlFile::CreateFlag flag);
|
||||
virtual ~AbstractOOXmlFilePrivate();
|
||||
|
||||
QString filePathInPackage;//such as "xl/worksheets/sheet1.xml"
|
||||
//used when load the .xlsx file
|
||||
Relationships *relationships;
|
||||
AbstractOOXmlFile::CreateFlag flag;
|
||||
AbstractOOXmlFile *q_ptr;
|
||||
};
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
AbstractSheetPrivate::AbstractSheetPrivate(AbstractSheet *p)
|
||||
: AbstractOOXmlFilePrivate(p)
|
||||
AbstractSheetPrivate::AbstractSheetPrivate(AbstractSheet *p, AbstractSheet::CreateFlag flag)
|
||||
: AbstractOOXmlFilePrivate(p, flag)
|
||||
{
|
||||
hidden = false;
|
||||
type = AbstractSheet::ST_WorkSheet;
|
||||
|
||||
@@ -48,7 +48,7 @@ class XLSX_AUTOTEST_EXPORT AbstractSheetPrivate : public AbstractOOXmlFilePrivat
|
||||
{
|
||||
Q_DECLARE_PUBLIC(AbstractSheet)
|
||||
public:
|
||||
AbstractSheetPrivate(AbstractSheet *p);
|
||||
AbstractSheetPrivate(AbstractSheet *p, AbstractSheet::CreateFlag flag);
|
||||
~AbstractSheetPrivate();
|
||||
|
||||
Workbook *workbook;
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
ChartPrivate::ChartPrivate(Chart *q)
|
||||
:AbstractOOXmlFilePrivate(q), chartType(static_cast<Chart::ChartType>(0))
|
||||
ChartPrivate::ChartPrivate(Chart *q, Chart::CreateFlag flag)
|
||||
:AbstractOOXmlFilePrivate(q, flag), chartType(static_cast<Chart::ChartType>(0))
|
||||
{
|
||||
|
||||
}
|
||||
@@ -77,8 +77,8 @@ ChartPrivate::~ChartPrivate()
|
||||
/*!
|
||||
* \internal
|
||||
*/
|
||||
Chart::Chart(AbstractSheet *parent)
|
||||
:AbstractOOXmlFile(new ChartPrivate(this))
|
||||
Chart::Chart(AbstractSheet *parent, CreateFlag flag)
|
||||
:AbstractOOXmlFile(new ChartPrivate(this, flag))
|
||||
{
|
||||
d_func()->sheet = parent;
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ private:
|
||||
friend class Chartsheet;
|
||||
friend class DrawingAnchor;
|
||||
|
||||
Chart(AbstractSheet *parent);
|
||||
Chart(AbstractSheet *parent, CreateFlag flag);
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE_XLSX
|
||||
|
||||
@@ -92,7 +92,7 @@ class ChartPrivate : public AbstractOOXmlFilePrivate
|
||||
Q_DECLARE_PUBLIC(Chart)
|
||||
|
||||
public:
|
||||
ChartPrivate(Chart *q);
|
||||
ChartPrivate(Chart *q, Chart::CreateFlag flag);
|
||||
~ChartPrivate();
|
||||
|
||||
bool loadXmlChart(QXmlStreamReader &reader);
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
ChartsheetPrivate::ChartsheetPrivate(Chartsheet *p)
|
||||
: AbstractSheetPrivate(p)
|
||||
ChartsheetPrivate::ChartsheetPrivate(Chartsheet *p, Chartsheet::CreateFlag flag)
|
||||
: AbstractSheetPrivate(p, flag)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -53,8 +53,8 @@ ChartsheetPrivate::~ChartsheetPrivate()
|
||||
/*!
|
||||
* \internal
|
||||
*/
|
||||
Chartsheet::Chartsheet(const QString &name, int id, Workbook *workbook)
|
||||
:AbstractSheet(name, id, workbook, new ChartsheetPrivate(this))
|
||||
Chartsheet::Chartsheet(const QString &name, int id, Workbook *workbook, CreateFlag flag)
|
||||
:AbstractSheet(name, id, workbook, new ChartsheetPrivate(this, flag))
|
||||
{
|
||||
setSheetType(ST_ChartSheet);
|
||||
}
|
||||
@@ -130,7 +130,7 @@ bool Chartsheet::loadFromXmlFile(QIODevice *device)
|
||||
QString rId = reader.attributes().value(QStringLiteral("r:id")).toString();
|
||||
QString name = d->relationships->getRelationshipById(rId).target;
|
||||
QString path = QDir::cleanPath(splitPath(filePath())[0] + QLatin1String("/") + name);
|
||||
d->drawing = QSharedPointer<Drawing>(new Drawing(this));
|
||||
d->drawing = QSharedPointer<Drawing>(new Drawing(this, F_LoadFromExists));
|
||||
d->drawing->setFilePath(path);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
private:
|
||||
friend class DocumentPrivate;
|
||||
friend class Workbook;
|
||||
Chartsheet(const QString &sheetName, int sheetId, Workbook *book);
|
||||
Chartsheet(const QString &sheetName, int sheetId, Workbook *book, CreateFlag flag);
|
||||
Chartsheet *copy(const QString &distName, int distId) const;
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
|
||||
@@ -46,7 +46,7 @@ class XLSX_AUTOTEST_EXPORT ChartsheetPrivate : public AbstractSheetPrivate
|
||||
{
|
||||
Q_DECLARE_PUBLIC(Chartsheet)
|
||||
public:
|
||||
ChartsheetPrivate(Chartsheet *p);
|
||||
ChartsheetPrivate(Chartsheet *p, Chartsheet::CreateFlag flag);
|
||||
~ChartsheetPrivate();
|
||||
|
||||
Chart *chart;
|
||||
|
||||
@@ -32,7 +32,8 @@
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
ContentTypes::ContentTypes()
|
||||
ContentTypes::ContentTypes(CreateFlag flag)
|
||||
:AbstractOOXmlFile(flag)
|
||||
{
|
||||
m_package_prefix = QStringLiteral("application/vnd.openxmlformats-package.");
|
||||
m_document_prefix = QStringLiteral("application/vnd.openxmlformats-officedocument.");
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace QXlsx {
|
||||
class ContentTypes : public AbstractOOXmlFile
|
||||
{
|
||||
public:
|
||||
ContentTypes();
|
||||
ContentTypes(CreateFlag flag);
|
||||
|
||||
void addDefault(const QString &key, const QString &value);
|
||||
void addOverride(const QString &key, const QString &value);
|
||||
|
||||
@@ -34,7 +34,8 @@
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
DocPropsApp::DocPropsApp()
|
||||
DocPropsApp::DocPropsApp(CreateFlag flag)
|
||||
:AbstractOOXmlFile(flag)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace QXlsx {
|
||||
class XLSX_AUTOTEST_EXPORT DocPropsApp : public AbstractOOXmlFile
|
||||
{
|
||||
public:
|
||||
DocPropsApp();
|
||||
DocPropsApp(CreateFlag flag);
|
||||
|
||||
void addPartTitle(const QString &title);
|
||||
void addHeadingPair(const QString &name, int value);
|
||||
|
||||
@@ -34,7 +34,8 @@
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
DocPropsCore::DocPropsCore()
|
||||
DocPropsCore::DocPropsCore(CreateFlag flag)
|
||||
:AbstractOOXmlFile(flag)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace QXlsx {
|
||||
class XLSX_AUTOTEST_EXPORT DocPropsCore : public AbstractOOXmlFile
|
||||
{
|
||||
public:
|
||||
explicit DocPropsCore();
|
||||
explicit DocPropsCore(CreateFlag flag);
|
||||
|
||||
bool setProperty(const QString &name, const QString &value);
|
||||
QString property(const QString &name) const;
|
||||
|
||||
+27
-20
@@ -87,11 +87,16 @@ QT_BEGIN_NAMESPACE_XLSX
|
||||
DocumentPrivate::DocumentPrivate(Document *p) :
|
||||
q_ptr(p), defaultPackageName(QStringLiteral("Book1.xlsx"))
|
||||
{
|
||||
workbook = QSharedPointer<Workbook>(new Workbook);
|
||||
}
|
||||
|
||||
void DocumentPrivate::init()
|
||||
{
|
||||
if (contentTypes.isNull())
|
||||
contentTypes = QSharedPointer<ContentTypes>(new ContentTypes(ContentTypes::F_NewFromScratch));
|
||||
|
||||
if (workbook.isNull())
|
||||
workbook = QSharedPointer<Workbook>(new Workbook(Workbook::F_NewFromScratch));
|
||||
|
||||
if (workbook->sheetCount() == 0)
|
||||
workbook->addSheet();
|
||||
}
|
||||
@@ -105,7 +110,8 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
//Load the Content_Types file
|
||||
if (!filePaths.contains(QLatin1String("[Content_Types].xml")))
|
||||
return false;
|
||||
contentTypes.loadFromXmlData(zipReader.fileData(QStringLiteral("[Content_Types].xml")));
|
||||
contentTypes = QSharedPointer<ContentTypes>(new ContentTypes(ContentTypes::F_LoadFromExists));
|
||||
contentTypes->loadFromXmlData(zipReader.fileData(QStringLiteral("[Content_Types].xml")));
|
||||
|
||||
//Load root rels file
|
||||
if (!filePaths.contains(QLatin1String("_rels/.rels")))
|
||||
@@ -120,7 +126,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
//In normal case, this should be "docProps/core.xml"
|
||||
QString docPropsCore_Name = rels_core[0].target;
|
||||
|
||||
DocPropsCore props;
|
||||
DocPropsCore props(DocPropsCore::F_LoadFromExists);
|
||||
props.loadFromXmlData(zipReader.fileData(docPropsCore_Name));
|
||||
foreach (QString name, props.propertyNames())
|
||||
q->setDocumentProperty(name, props.property(name));
|
||||
@@ -133,7 +139,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
//In normal case, this should be "docProps/app.xml"
|
||||
QString docPropsApp_Name = rels_app[0].target;
|
||||
|
||||
DocPropsApp props;
|
||||
DocPropsApp props(DocPropsApp::F_LoadFromExists);
|
||||
props.loadFromXmlData(zipReader.fileData(docPropsApp_Name));
|
||||
foreach (QString name, props.propertyNames())
|
||||
q->setDocumentProperty(name, props.property(name));
|
||||
@@ -141,6 +147,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
|
||||
//load workbook now, Get the workbook file path from the root rels file
|
||||
//In normal case, this should be "xl/workbook.xml"
|
||||
workbook = QSharedPointer<Workbook>(new Workbook(Workbook::F_LoadFromExists));
|
||||
QList<XlsxRelationship> rels_xl = rootRels.documentRelationships(QStringLiteral("/officeDocument"));
|
||||
if (rels_xl.isEmpty())
|
||||
return false;
|
||||
@@ -156,7 +163,7 @@ bool DocumentPrivate::loadPackage(QIODevice *device)
|
||||
//In normal case this should be styles.xml which in xl
|
||||
QString name = rels_styles[0].target;
|
||||
QString path = xlworkbook_Dir + QLatin1String("/") + name;
|
||||
QSharedPointer<Styles> styles (new Styles(true));
|
||||
QSharedPointer<Styles> styles (new Styles(Styles::F_LoadFromExists));
|
||||
styles->loadFromXmlData(zipReader.fileData(path));
|
||||
workbook->d_func()->styles = styles;
|
||||
}
|
||||
@@ -234,16 +241,16 @@ bool DocumentPrivate::savePackage(QIODevice *device) const
|
||||
if (zipWriter.error())
|
||||
return false;
|
||||
|
||||
contentTypes.clearOverrides();
|
||||
contentTypes->clearOverrides();
|
||||
|
||||
DocPropsApp docPropsApp;
|
||||
DocPropsCore docPropsCore;
|
||||
DocPropsApp docPropsApp(DocPropsApp::F_NewFromScratch);
|
||||
DocPropsCore docPropsCore(DocPropsCore::F_NewFromScratch);
|
||||
|
||||
// save sheet xml files
|
||||
for (int i=0; i<workbook->sheetCount(); ++i) {
|
||||
AbstractSheet *sheet = workbook->sheet(i);
|
||||
if (sheet->sheetType() == AbstractSheet::ST_WorkSheet) {
|
||||
contentTypes.addWorksheetName(QStringLiteral("sheet%1").arg(i+1));
|
||||
contentTypes->addWorksheetName(QStringLiteral("sheet%1").arg(i+1));
|
||||
docPropsApp.addPartTitle(sheet->sheetName());
|
||||
|
||||
zipWriter.addFile(QStringLiteral("xl/worksheets/sheet%1.xml").arg(i+1), sheet->saveToXmlData());
|
||||
@@ -256,7 +263,7 @@ bool DocumentPrivate::savePackage(QIODevice *device) const
|
||||
// save external links xml files
|
||||
for (int i=0; i<workbook->d_func()->externalLinks.count(); ++i) {
|
||||
SimpleOOXmlFile *link = workbook->d_func()->externalLinks[i].data();
|
||||
contentTypes.addExternalLinkName(QStringLiteral("externalLink%1").arg(i+1));
|
||||
contentTypes->addExternalLinkName(QStringLiteral("externalLink%1").arg(i+1));
|
||||
|
||||
zipWriter.addFile(QStringLiteral("xl/externalLinks/externalLink%1.xml").arg(i+1), link->saveToXmlData());
|
||||
Relationships *rel = link->relationships();
|
||||
@@ -265,13 +272,13 @@ bool DocumentPrivate::savePackage(QIODevice *device) const
|
||||
}
|
||||
|
||||
// save workbook xml file
|
||||
contentTypes.addWorkbook();
|
||||
contentTypes->addWorkbook();
|
||||
zipWriter.addFile(QStringLiteral("xl/workbook.xml"), workbook->saveToXmlData());
|
||||
zipWriter.addFile(QStringLiteral("xl/_rels/workbook.xml.rels"), workbook->relationships()->saveToXmlData());
|
||||
|
||||
// save drawing xml files
|
||||
for (int i=0; i<workbook->drawings().size(); ++i) {
|
||||
contentTypes.addDrawingName(QStringLiteral("drawing%1").arg(i+1));
|
||||
contentTypes->addDrawingName(QStringLiteral("drawing%1").arg(i+1));
|
||||
|
||||
Drawing *drawing = workbook->drawings()[i];
|
||||
zipWriter.addFile(QStringLiteral("xl/drawings/drawing%1.xml").arg(i+1), drawing->saveToXmlData());
|
||||
@@ -286,28 +293,28 @@ bool DocumentPrivate::savePackage(QIODevice *device) const
|
||||
}
|
||||
if (workbook->sheetCount())
|
||||
docPropsApp.addHeadingPair(QStringLiteral("Worksheets"), workbook->sheetCount());
|
||||
contentTypes.addDocPropApp();
|
||||
contentTypes.addDocPropCore();
|
||||
contentTypes->addDocPropApp();
|
||||
contentTypes->addDocPropCore();
|
||||
zipWriter.addFile(QStringLiteral("docProps/app.xml"), docPropsApp.saveToXmlData());
|
||||
zipWriter.addFile(QStringLiteral("docProps/core.xml"), docPropsCore.saveToXmlData());
|
||||
|
||||
// save sharedStrings xml file
|
||||
if (!workbook->sharedStrings()->isEmpty()) {
|
||||
contentTypes.addSharedString();
|
||||
contentTypes->addSharedString();
|
||||
zipWriter.addFile(QStringLiteral("xl/sharedStrings.xml"), workbook->sharedStrings()->saveToXmlData());
|
||||
}
|
||||
|
||||
// save styles xml file
|
||||
contentTypes.addStyles();
|
||||
contentTypes->addStyles();
|
||||
zipWriter.addFile(QStringLiteral("xl/styles.xml"), workbook->styles()->saveToXmlData());
|
||||
|
||||
// save theme xml file
|
||||
contentTypes.addTheme();
|
||||
contentTypes->addTheme();
|
||||
zipWriter.addFile(QStringLiteral("xl/theme/theme1.xml"), workbook->theme()->saveToXmlData());
|
||||
|
||||
// save chart xml files
|
||||
for (int i=0; i<workbook->chartFiles().size(); ++i) {
|
||||
contentTypes.addChartName(QStringLiteral("chart%1").arg(i+1));
|
||||
contentTypes->addChartName(QStringLiteral("chart%1").arg(i+1));
|
||||
QSharedPointer<Chart> cf = workbook->chartFiles()[i];
|
||||
zipWriter.addFile(QStringLiteral("xl/charts/chart%1.xml").arg(i+1), cf->saveToXmlData());
|
||||
}
|
||||
@@ -316,7 +323,7 @@ bool DocumentPrivate::savePackage(QIODevice *device) const
|
||||
for (int i=0; i<workbook->mediaFiles().size(); ++i) {
|
||||
QSharedPointer<MediaFile> mf = workbook->mediaFiles()[i];
|
||||
if (!mf->mimeType().isEmpty())
|
||||
contentTypes.addDefault(mf->suffix(), mf->mimeType());
|
||||
contentTypes->addDefault(mf->suffix(), mf->mimeType());
|
||||
|
||||
zipWriter.addFile(QStringLiteral("xl/media/image%1.%2").arg(i+1).arg(mf->suffix()), mf->contents());
|
||||
}
|
||||
@@ -329,7 +336,7 @@ bool DocumentPrivate::savePackage(QIODevice *device) const
|
||||
zipWriter.addFile(QStringLiteral("_rels/.rels"), rootrels.saveToXmlData());
|
||||
|
||||
// save content types xml file
|
||||
zipWriter.addFile(QStringLiteral("[Content_Types].xml"), contentTypes.saveToXmlData());
|
||||
zipWriter.addFile(QStringLiteral("[Content_Types].xml"), contentTypes->saveToXmlData());
|
||||
|
||||
zipWriter.close();
|
||||
return true;
|
||||
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
|
||||
QMap<QString, QString> documentProperties; //core, app and custom properties
|
||||
QSharedPointer<Workbook> workbook;
|
||||
mutable ContentTypes contentTypes;
|
||||
QSharedPointer<ContentTypes> contentTypes;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
Drawing::Drawing(AbstractSheet *sheet)
|
||||
:sheet(sheet)
|
||||
Drawing::Drawing(AbstractSheet *sheet, CreateFlag flag)
|
||||
:AbstractOOXmlFile(flag), sheet(sheet)
|
||||
{
|
||||
workbook = sheet->workbook();
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ class MediaFile;
|
||||
class Drawing : public AbstractOOXmlFile
|
||||
{
|
||||
public:
|
||||
Drawing(AbstractSheet *sheet);
|
||||
Drawing(AbstractSheet *sheet, CreateFlag flag);
|
||||
~Drawing();
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
|
||||
@@ -206,7 +206,7 @@ void DrawingAnchor::loadXmlObjectGraphicFrame(QXmlStreamReader &reader)
|
||||
}
|
||||
}
|
||||
if (!exist) {
|
||||
m_chartFile = QSharedPointer<Chart> (new Chart(m_drawing->sheet));
|
||||
m_chartFile = QSharedPointer<Chart> (new Chart(m_drawing->sheet, Chart::F_LoadFromExists));
|
||||
m_chartFile->setFilePath(path);
|
||||
m_drawing->workbook->addChartFile(m_chartFile);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
|
||||
namespace QXlsx {
|
||||
|
||||
SharedStrings::SharedStrings()
|
||||
SharedStrings::SharedStrings(CreateFlag flag)
|
||||
:AbstractOOXmlFile(flag)
|
||||
{
|
||||
m_stringCount = 0;
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
class XLSX_AUTOTEST_EXPORT SharedStrings : public AbstractOOXmlFile
|
||||
{
|
||||
public:
|
||||
SharedStrings();
|
||||
SharedStrings(CreateFlag flag);
|
||||
int count() const;
|
||||
bool isEmpty() const;
|
||||
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
#include <QIODevice>
|
||||
|
||||
namespace QXlsx {
|
||||
SimpleOOXmlFile::SimpleOOXmlFile()
|
||||
SimpleOOXmlFile::SimpleOOXmlFile(CreateFlag flag)
|
||||
:AbstractOOXmlFile(flag)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace QXlsx {
|
||||
class SimpleOOXmlFile : public AbstractOOXmlFile
|
||||
{
|
||||
public:
|
||||
SimpleOOXmlFile();
|
||||
SimpleOOXmlFile(CreateFlag flag);
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
QByteArray saveToXmlData() const;
|
||||
|
||||
@@ -41,12 +41,12 @@ namespace QXlsx {
|
||||
otherwise, default formats should be added.
|
||||
|
||||
*/
|
||||
Styles::Styles(bool createEmpty)
|
||||
: m_nextCustomNumFmtId(176), m_emptyFormatAdded(false)
|
||||
Styles::Styles(CreateFlag flag)
|
||||
: AbstractOOXmlFile(flag), m_nextCustomNumFmtId(176), m_emptyFormatAdded(false)
|
||||
{
|
||||
//!Fix me. Should the custom num fmt Id starts with 164 or 176 or others??
|
||||
|
||||
if (!createEmpty) {
|
||||
if (flag == F_NewFromScratch) {
|
||||
//Add default Format
|
||||
Format defaultFmt;
|
||||
addXfFormat(defaultFmt);
|
||||
|
||||
@@ -67,7 +67,7 @@ struct XlsxFormatNumberData
|
||||
class XLSX_AUTOTEST_EXPORT Styles : public AbstractOOXmlFile
|
||||
{
|
||||
public:
|
||||
Styles(bool createEmpty=false);
|
||||
Styles(CreateFlag flag);
|
||||
~Styles();
|
||||
void addXfFormat(const Format &format, bool force=false);
|
||||
Format xfFormat(int idx) const;
|
||||
|
||||
@@ -201,7 +201,8 @@ const char *defaultXmlData =
|
||||
"</a:theme>"
|
||||
;
|
||||
|
||||
Theme::Theme()
|
||||
Theme::Theme(CreateFlag flag)
|
||||
:AbstractOOXmlFile(flag)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace QXlsx {
|
||||
class Theme : public AbstractOOXmlFile
|
||||
{
|
||||
public:
|
||||
Theme();
|
||||
Theme(CreateFlag flag);
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
QByteArray saveToXmlData() const;
|
||||
|
||||
+10
-10
@@ -41,12 +41,12 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
WorkbookPrivate::WorkbookPrivate(Workbook *q) :
|
||||
AbstractOOXmlFilePrivate(q)
|
||||
WorkbookPrivate::WorkbookPrivate(Workbook *q, Workbook::CreateFlag flag) :
|
||||
AbstractOOXmlFilePrivate(q, flag)
|
||||
{
|
||||
sharedStrings = QSharedPointer<SharedStrings> (new SharedStrings);
|
||||
styles = QSharedPointer<Styles>(new Styles);
|
||||
theme = QSharedPointer<Theme>(new Theme);
|
||||
sharedStrings = QSharedPointer<SharedStrings> (new SharedStrings(flag));
|
||||
styles = QSharedPointer<Styles>(new Styles(flag));
|
||||
theme = QSharedPointer<Theme>(new Theme(flag));
|
||||
|
||||
x_window = 240;
|
||||
y_window = 15;
|
||||
@@ -65,8 +65,8 @@ WorkbookPrivate::WorkbookPrivate(Workbook *q) :
|
||||
last_sheet_id = 0;
|
||||
}
|
||||
|
||||
Workbook::Workbook()
|
||||
: AbstractOOXmlFile(new WorkbookPrivate(this))
|
||||
Workbook::Workbook(CreateFlag flag)
|
||||
: AbstractOOXmlFile(new WorkbookPrivate(this, flag))
|
||||
{
|
||||
|
||||
}
|
||||
@@ -196,7 +196,7 @@ AbstractSheet *Workbook::addSheet(const QString &name, int sheetId, AbstractShee
|
||||
if (sheetId > d->last_sheet_id)
|
||||
d->last_sheet_id = sheetId;
|
||||
|
||||
Worksheet *sheet = new Worksheet(name, sheetId, this);
|
||||
Worksheet *sheet = new Worksheet(name, sheetId, this, F_LoadFromExists);
|
||||
d->sheets.append(QSharedPointer<Worksheet>(sheet));
|
||||
d->sheetNames.append(name);
|
||||
return sheet;
|
||||
@@ -218,7 +218,7 @@ AbstractSheet *Workbook::insertSheet(int index, const QString &name, AbstractShe
|
||||
}
|
||||
|
||||
++d->last_sheet_id;
|
||||
Worksheet *sheet = new Worksheet(worksheetName, d->last_sheet_id, this);
|
||||
Worksheet *sheet = new Worksheet(worksheetName, d->last_sheet_id, this, F_NewFromScratch);
|
||||
d->sheets.insert(index, QSharedPointer<Worksheet>(sheet));
|
||||
d->sheetNames.insert(index, worksheetName);
|
||||
d->activesheetIndex = index;
|
||||
@@ -545,7 +545,7 @@ bool Workbook::loadFromXmlFile(QIODevice *device)
|
||||
const QString rId = attributes.value(QLatin1String("r:id")).toString();
|
||||
XlsxRelationship relationship = d->relationships->getRelationshipById(rId);
|
||||
|
||||
QSharedPointer<SimpleOOXmlFile> link(new SimpleOOXmlFile);
|
||||
QSharedPointer<SimpleOOXmlFile> link(new SimpleOOXmlFile(F_LoadFromExists));
|
||||
const QString fullPath = QDir::cleanPath(splitPath(filePath())[0] +QLatin1String("/")+ relationship.target);
|
||||
link->setFilePath(fullPath);
|
||||
d->externalLinks.append(link);
|
||||
|
||||
@@ -92,7 +92,7 @@ private:
|
||||
friend class Document;
|
||||
friend class DocumentPrivate;
|
||||
|
||||
Workbook();
|
||||
Workbook(Workbook::CreateFlag flag);
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
bool loadFromXmlFile(QIODevice *device);
|
||||
|
||||
@@ -69,7 +69,7 @@ class WorkbookPrivate : public AbstractOOXmlFilePrivate
|
||||
{
|
||||
Q_DECLARE_PUBLIC(Workbook)
|
||||
public:
|
||||
WorkbookPrivate(Workbook *q);
|
||||
WorkbookPrivate(Workbook *q, Workbook::CreateFlag flag);
|
||||
|
||||
QSharedPointer<SharedStrings> sharedStrings;
|
||||
QList<QSharedPointer<AbstractSheet> > sheets;
|
||||
|
||||
+10
-10
@@ -56,8 +56,8 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE_XLSX
|
||||
|
||||
WorksheetPrivate::WorksheetPrivate(Worksheet *p)
|
||||
: AbstractSheetPrivate(p)
|
||||
WorksheetPrivate::WorksheetPrivate(Worksheet *p, Worksheet::CreateFlag flag)
|
||||
: AbstractSheetPrivate(p, flag)
|
||||
, windowProtection(false), showFormulas(false), showGridLines(true), showRowColHeaders(true)
|
||||
, showZeros(true), rightToLeft(false), tabSelected(false), showRuler(false)
|
||||
, showOutlineSymbols(true), showWhiteSpace(true)
|
||||
@@ -171,11 +171,11 @@ int WorksheetPrivate::checkDimensions(int row, int col, bool ignore_row, bool ig
|
||||
/*!
|
||||
* \internal
|
||||
*/
|
||||
Worksheet::Worksheet(const QString &name, int id, Workbook *workbook)
|
||||
:AbstractSheet(name, id, workbook, new WorksheetPrivate(this))
|
||||
Worksheet::Worksheet(const QString &name, int id, Workbook *workbook, CreateFlag flag)
|
||||
:AbstractSheet(name, id, workbook, new WorksheetPrivate(this, flag))
|
||||
{
|
||||
if (!workbook) //For unit test propose only. Ignore the memery leak.
|
||||
d_func()->workbook = new Workbook;
|
||||
d_func()->workbook = new Workbook(flag);
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -187,7 +187,7 @@ Worksheet::Worksheet(const QString &name, int id, Workbook *workbook)
|
||||
Worksheet *Worksheet::copy(const QString &distName, int distId) const
|
||||
{
|
||||
Q_D(const Worksheet);
|
||||
Worksheet *sheet = new Worksheet(distName, distId, d->workbook);
|
||||
Worksheet *sheet = new Worksheet(distName, distId, d->workbook, F_NewFromScratch);
|
||||
WorksheetPrivate *sheet_d = sheet->d_func();
|
||||
|
||||
sheet_d->dimension = d->dimension;
|
||||
@@ -1028,7 +1028,7 @@ bool Worksheet::insertImage(int row, int column, const QImage &image)
|
||||
return false;
|
||||
|
||||
if (!d->drawing)
|
||||
d->drawing = QSharedPointer<Drawing>(new Drawing(this));
|
||||
d->drawing = QSharedPointer<Drawing>(new Drawing(this, F_NewFromScratch));
|
||||
|
||||
DrawingOneCellAnchor *anchor = new DrawingOneCellAnchor(d->drawing.data(), DrawingAnchor::Picture);
|
||||
|
||||
@@ -1054,7 +1054,7 @@ Chart *Worksheet::insertChart(int row, int column, const QSize &size)
|
||||
Q_D(Worksheet);
|
||||
|
||||
if (!d->drawing)
|
||||
d->drawing = QSharedPointer<Drawing>(new Drawing(this));
|
||||
d->drawing = QSharedPointer<Drawing>(new Drawing(this, F_NewFromScratch));
|
||||
|
||||
DrawingOneCellAnchor *anchor = new DrawingOneCellAnchor(d->drawing.data(), DrawingAnchor::Picture);
|
||||
|
||||
@@ -1066,7 +1066,7 @@ Chart *Worksheet::insertChart(int row, int column, const QSize &size)
|
||||
anchor->from = XlsxMarker(row, column, 0, 0);
|
||||
anchor->ext = size * 9525;
|
||||
|
||||
QSharedPointer<Chart> chart = QSharedPointer<Chart>(new Chart(this));
|
||||
QSharedPointer<Chart> chart = QSharedPointer<Chart>(new Chart(this, F_NewFromScratch));
|
||||
anchor->setObjectGraphicFrame(chart);
|
||||
|
||||
return chart.data();
|
||||
@@ -2116,7 +2116,7 @@ bool Worksheet::loadFromXmlFile(QIODevice *device)
|
||||
QString rId = reader.attributes().value(QStringLiteral("r:id")).toString();
|
||||
QString name = d->relationships->getRelationshipById(rId).target;
|
||||
QString path = QDir::cleanPath(splitPath(filePath())[0] + QLatin1String("/") + name);
|
||||
d->drawing = QSharedPointer<Drawing>(new Drawing(this));
|
||||
d->drawing = QSharedPointer<Drawing>(new Drawing(this, F_LoadFromExists));
|
||||
d->drawing->setFilePath(path);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ private:
|
||||
friend class DocumentPrivate;
|
||||
friend class Workbook;
|
||||
friend class ::WorksheetTest;
|
||||
Worksheet(const QString &sheetName, int sheetId, Workbook *book);
|
||||
Worksheet(const QString &sheetName, int sheetId, Workbook *book, CreateFlag flag);
|
||||
Worksheet *copy(const QString &distName, int distId) const;
|
||||
|
||||
void saveToXmlFile(QIODevice *device) const;
|
||||
|
||||
@@ -115,7 +115,7 @@ class XLSX_AUTOTEST_EXPORT WorksheetPrivate : public AbstractSheetPrivate
|
||||
{
|
||||
Q_DECLARE_PUBLIC(Worksheet)
|
||||
public:
|
||||
WorksheetPrivate(Worksheet *p);
|
||||
WorksheetPrivate(Worksheet *p, Worksheet::CreateFlag flag);
|
||||
~WorksheetPrivate();
|
||||
int checkDimensions(int row, int col, bool ignore_row=false, bool ignore_col=false);
|
||||
Format cellFormat(int row, int col) const;
|
||||
|
||||
@@ -20,7 +20,7 @@ DocPropsAppTest::DocPropsAppTest()
|
||||
|
||||
void DocPropsAppTest::testCase1()
|
||||
{
|
||||
QXlsx::DocPropsApp props;
|
||||
QXlsx::DocPropsApp props(QXlsx::DocPropsApp::F_NewFromScratch);
|
||||
|
||||
props.setProperty("company", "HMI CN");
|
||||
props.setProperty("manager", "Debao");
|
||||
@@ -31,7 +31,7 @@ void DocPropsAppTest::testCase1()
|
||||
f1.close();
|
||||
|
||||
f1.open(QFile::ReadOnly);
|
||||
QXlsx::DocPropsApp props2;
|
||||
QXlsx::DocPropsApp props2(QXlsx::DocPropsApp::F_LoadFromExists);
|
||||
props2.loadFromXmlFile(&f1);
|
||||
|
||||
QCOMPARE(props2.property("company"), QString("HMI CN"));
|
||||
|
||||
@@ -20,7 +20,7 @@ DocPropsCoreTest::DocPropsCoreTest()
|
||||
|
||||
void DocPropsCoreTest::testCase1()
|
||||
{
|
||||
QXlsx::DocPropsCore props;
|
||||
QXlsx::DocPropsCore props(QXlsx::DocPropsCore::F_NewFromScratch);
|
||||
|
||||
props.setProperty("creator", "Debao");
|
||||
props.setProperty("keywords", "Test, test, TEST");
|
||||
@@ -32,7 +32,7 @@ void DocPropsCoreTest::testCase1()
|
||||
f1.close();
|
||||
|
||||
f1.open(QFile::ReadOnly);
|
||||
QXlsx::DocPropsCore props2;
|
||||
QXlsx::DocPropsCore props2(QXlsx::DocPropsCore::F_LoadFromExists);
|
||||
props2.loadFromXmlFile(&f1);
|
||||
|
||||
QCOMPARE(props2.property("creator"), QString("Debao"));
|
||||
|
||||
@@ -27,7 +27,7 @@ SharedStringsTest::SharedStringsTest()
|
||||
|
||||
void SharedStringsTest::testAddSharedString()
|
||||
{
|
||||
QXlsx::SharedStrings sst;
|
||||
QXlsx::SharedStrings sst(QXlsx::SharedStrings::F_NewFromScratch);
|
||||
sst.addSharedString("Hello Qt!");
|
||||
sst.addSharedString("Xlsx Writer");
|
||||
|
||||
@@ -68,7 +68,7 @@ void SharedStringsTest::testAddSharedString()
|
||||
|
||||
void SharedStringsTest::testRemoveSharedString()
|
||||
{
|
||||
QXlsx::SharedStrings sst;
|
||||
QXlsx::SharedStrings sst(QXlsx::SharedStrings::F_NewFromScratch);
|
||||
sst.addSharedString("Hello Qt!");
|
||||
sst.addSharedString("Xlsx Writer");
|
||||
sst.addSharedString("Hello World");
|
||||
@@ -101,7 +101,7 @@ void SharedStringsTest::testRemoveSharedString()
|
||||
|
||||
void SharedStringsTest::testLoadXmlData()
|
||||
{
|
||||
QXlsx::SharedStrings sst;
|
||||
QXlsx::SharedStrings sst(QXlsx::SharedStrings::F_NewFromScratch);
|
||||
sst.addSharedString("Hello Qt!");
|
||||
sst.addSharedString("Xlsx Writer");
|
||||
|
||||
@@ -119,7 +119,7 @@ void SharedStringsTest::testLoadXmlData()
|
||||
sst.addSharedString("Hello Qt!");
|
||||
QByteArray xmlData = sst.saveToXmlData();
|
||||
|
||||
QSharedPointer<QXlsx::SharedStrings> sst2(new QXlsx::SharedStrings);
|
||||
QSharedPointer<QXlsx::SharedStrings> sst2(new QXlsx::SharedStrings(QXlsx::SharedStrings::F_LoadFromExists));
|
||||
sst2->loadFromXmlData(xmlData);
|
||||
|
||||
QCOMPARE(sst2->getSharedString(0).toPlainString(), QStringLiteral("Hello Qt!"));
|
||||
@@ -147,7 +147,7 @@ void SharedStringsTest::testLoadRichStringXmlData()
|
||||
"</si>"
|
||||
"</sst>";
|
||||
|
||||
QSharedPointer<QXlsx::SharedStrings> sst(new QXlsx::SharedStrings);
|
||||
QSharedPointer<QXlsx::SharedStrings> sst(new QXlsx::SharedStrings(QXlsx::SharedStrings::F_LoadFromExists));
|
||||
sst->loadFromXmlData(xmlData);
|
||||
QXlsx::RichString rs = sst->getSharedString(0);
|
||||
QVERIFY(rs.fragmentText(0) == "e=mc");
|
||||
|
||||
@@ -32,7 +32,7 @@ StylesTest::StylesTest()
|
||||
|
||||
void StylesTest::testEmptyStyle()
|
||||
{
|
||||
QXlsx::Styles styles;
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch);
|
||||
QByteArray xmlData = styles.saveToXmlData();
|
||||
|
||||
QVERIFY2(xmlData.contains("<cellXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\"/></cellXfs>"), "Must have one cell style");
|
||||
@@ -41,7 +41,7 @@ void StylesTest::testEmptyStyle()
|
||||
|
||||
void StylesTest::testAddXfFormat()
|
||||
{
|
||||
QXlsx::Styles styles;
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch);
|
||||
|
||||
for (int i=0; i<10; ++i) {
|
||||
QXlsx::Format format;
|
||||
@@ -55,7 +55,7 @@ void StylesTest::testAddXfFormat()
|
||||
|
||||
void StylesTest::testAddXfFormat2()
|
||||
{
|
||||
QXlsx::Styles styles;
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch);
|
||||
|
||||
QXlsx::Format format;
|
||||
format.setNumberFormat("h:mm:ss AM/PM"); //builtin 19
|
||||
@@ -73,7 +73,7 @@ void StylesTest::testAddXfFormat2()
|
||||
// For a solid fill, Excel reverses the role of foreground and background colours
|
||||
void StylesTest::testSolidFillBackgroundColor()
|
||||
{
|
||||
QXlsx::Styles styles;
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch);
|
||||
QXlsx::Format format;
|
||||
format.setPatternBackgroundColor(QColor(Qt::red));
|
||||
styles.addXfFormat(format);
|
||||
@@ -85,7 +85,7 @@ void StylesTest::testSolidFillBackgroundColor()
|
||||
|
||||
void StylesTest::testWriteBorders()
|
||||
{
|
||||
QXlsx::Styles styles;
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_NewFromScratch);
|
||||
QXlsx::Format format;
|
||||
format.setRightBorderStyle(QXlsx::Format::BorderThin);
|
||||
styles.addXfFormat(format);
|
||||
@@ -103,7 +103,7 @@ void StylesTest::testReadFonts()
|
||||
"<font><sz val=\"15\"/><color rgb=\"FFff0000\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font>"
|
||||
"<font><b/><u val=\"double\"/><sz val=\"11\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font>"
|
||||
"</fonts>";
|
||||
QXlsx::Styles styles(true);
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_LoadFromExists);
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//So current node is fonts
|
||||
styles.readFonts(reader);
|
||||
@@ -122,7 +122,7 @@ void StylesTest::testReadFills()
|
||||
"<fill><patternFill patternType=\"lightUp\"/></fill>"
|
||||
"<fill><patternFill patternType=\"solid\"><fgColor rgb=\"FFa0a0a4\"/></patternFill></fill>"
|
||||
"</fills>";
|
||||
QXlsx::Styles styles(true);
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_LoadFromExists);
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//So current node is fills
|
||||
styles.readFills(reader);
|
||||
@@ -139,7 +139,7 @@ void StylesTest::testReadBorders()
|
||||
"<border><left style=\"dashDotDot\"><color auto=\"1\"/></left><right style=\"dashDotDot\"><color auto=\"1\"/></right><top style=\"dashDotDot\"><color auto=\"1\"/></top><bottom style=\"dashDotDot\"><color auto=\"1\"/></bottom><diagonal/></border>"
|
||||
"</borders>";
|
||||
|
||||
QXlsx::Styles styles(true);
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_LoadFromExists);
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//So current node is borders
|
||||
styles.readBorders(reader);
|
||||
@@ -154,7 +154,7 @@ void StylesTest::testReadNumFmts()
|
||||
"<numFmt numFmtId=\"165\" formatCode=\"dd/mm/yyyy\"/>"
|
||||
"</numFmts>";
|
||||
|
||||
QXlsx::Styles styles(true);
|
||||
QXlsx::Styles styles(QXlsx::Styles::F_LoadFromExists);
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//So current node is numFmts
|
||||
styles.readNumFmts(reader);
|
||||
|
||||
@@ -42,7 +42,7 @@ WorksheetTest::WorksheetTest()
|
||||
|
||||
void WorksheetTest::testEmptySheet()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
sheet.write("B1", 123);
|
||||
QByteArray xmldata = sheet.saveToXmlData();
|
||||
|
||||
@@ -51,7 +51,7 @@ void WorksheetTest::testEmptySheet()
|
||||
|
||||
void WorksheetTest::testDimension()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
QCOMPARE(sheet.dimension(), QXlsx::CellRange()); //Default
|
||||
|
||||
sheet.write("C3", "Test");
|
||||
@@ -70,7 +70,7 @@ void WorksheetTest::testDimension()
|
||||
|
||||
void WorksheetTest::testSheetView()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
sheet.setGridLinesVisible(false);
|
||||
sheet.setWindowProtected(true);
|
||||
QByteArray xmldata = sheet.saveToXmlData();
|
||||
@@ -81,7 +81,7 @@ void WorksheetTest::testSheetView()
|
||||
|
||||
void WorksheetTest::testSetColumn()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
sheet.setColumn(1, 11, 20.0); //"A:K"
|
||||
sheet.setColumn(4, 8, 10.0); //"D:H"
|
||||
sheet.setColumn(6, 6, 15.0); //"F:F"
|
||||
@@ -100,7 +100,7 @@ void WorksheetTest::testSetColumn()
|
||||
|
||||
void WorksheetTest::testWriteCells()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
sheet.write("A1", 123);
|
||||
sheet.write("A2", "Hello");
|
||||
sheet.writeInlineString(3, 1, "Hello inline"); //A3
|
||||
@@ -122,7 +122,7 @@ void WorksheetTest::testWriteCells()
|
||||
|
||||
void WorksheetTest::testWriteHyperlinks()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
sheet.write("A1", QUrl::fromUserInput("http://qt-project.org"));
|
||||
sheet.write("B1", QUrl::fromUserInput("http://qt-project.org/abc"));
|
||||
sheet.write("C1", QUrl::fromUserInput("http://qt-project.org/abc.html#test"));
|
||||
@@ -146,7 +146,7 @@ void WorksheetTest::testWriteHyperlinks()
|
||||
|
||||
void WorksheetTest::testWriteDataValidations()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
QXlsx::DataValidation validation(QXlsx::DataValidation::Whole);
|
||||
validation.setFormula1("10");
|
||||
validation.setFormula2("100");
|
||||
@@ -160,7 +160,7 @@ void WorksheetTest::testWriteDataValidations()
|
||||
|
||||
void WorksheetTest::testMerge()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
sheet.write("B1", 123);
|
||||
sheet.mergeCells("B1:B5");
|
||||
QByteArray xmldata = sheet.saveToXmlData();
|
||||
@@ -170,7 +170,7 @@ void WorksheetTest::testMerge()
|
||||
|
||||
void WorksheetTest::testUnMerge()
|
||||
{
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_NewFromScratch);
|
||||
sheet.write("B1", 123);
|
||||
sheet.mergeCells("B1:B5");
|
||||
sheet.unmergeCells("B1:B5");
|
||||
@@ -197,7 +197,7 @@ void WorksheetTest::testReadSheetData()
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//current node is sheetData
|
||||
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists);
|
||||
sheet.d_func()->sharedStrings()->addSharedString("Hello");
|
||||
sheet.d_func()->loadXmlSheetData(reader);
|
||||
|
||||
@@ -238,7 +238,7 @@ void WorksheetTest::testReadColsInfo()
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//current node is cols
|
||||
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists);
|
||||
sheet.d_func()->loadXmlColumnsInfo(reader);
|
||||
|
||||
QCOMPARE(sheet.d_func()->colsInfo.size(), 1);
|
||||
@@ -258,7 +258,7 @@ void WorksheetTest::testReadRowsInfo()
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//current node is sheetData
|
||||
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists);
|
||||
sheet.d_func()->loadXmlSheetData(reader);
|
||||
|
||||
QCOMPARE(sheet.d_func()->rowsInfo.size(), 1);
|
||||
@@ -272,7 +272,7 @@ void WorksheetTest::testReadMergeCells()
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//current node is mergeCells
|
||||
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists);
|
||||
sheet.d_func()->loadXmlMergeCells(reader);
|
||||
|
||||
QCOMPARE(sheet.d_func()->merges.size(), 2);
|
||||
@@ -289,7 +289,7 @@ void WorksheetTest::testReadDataValidations()
|
||||
QXmlStreamReader reader(xmlData);
|
||||
reader.readNextStartElement();//current node is dataValidations
|
||||
|
||||
QXlsx::Worksheet sheet("", 1, 0);
|
||||
QXlsx::Worksheet sheet("", 1, 0, QXlsx::Worksheet::F_LoadFromExists);
|
||||
sheet.d_func()->loadXmlDataValidations(reader);
|
||||
|
||||
QCOMPARE(sheet.d_func()->dataValidationsList.size(), 2);
|
||||
|
||||
Reference in New Issue
Block a user