Add convenient function saveToXmlData() for worksheet

This commit is contained in:
Debao Zhang
2013-09-12 14:54:17 +08:00
parent 426ce14311
commit d2fe2769de
3 changed files with 41 additions and 17 deletions
+32 -4
View File
@@ -38,6 +38,7 @@
#include <QUrl>
#include <QRegularExpression>
#include <QDebug>
#include <QBuffer>
#include <stdint.h>
@@ -83,6 +84,9 @@ WorksheetPrivate::~WorksheetPrivate()
foreach (XlsxColumnInfo *col, colsInfo)
delete col;
if (drawing)
delete drawing;
}
/*
@@ -202,11 +206,11 @@ int WorksheetPrivate::checkDimensions(int row, int col, bool ignore_row, bool ig
* \param index Index of the worksheet in the workbook
* \param parent
*/
Worksheet::Worksheet(const QString &name, Workbook *parent) :
QObject(parent), d_ptr(new WorksheetPrivate(this))
Worksheet::Worksheet(const QString &name, Workbook *workbook) :
d_ptr(new WorksheetPrivate(this))
{
d_ptr->name = name;
d_ptr->workbook = parent;
d_ptr->workbook = workbook;
}
Worksheet::~Worksheet()
@@ -877,7 +881,7 @@ void Worksheet::prepareImage(int index, int image_id, int drawing_id)
{
Q_D(Worksheet);
if (!d->drawing) {
d->drawing = new Drawing(this);
d->drawing = new Drawing;
d->drawing->embedded = true;
d->externDrawingList.append(QStringLiteral("../drawings/drawing%1.xml").arg(drawing_id));
}
@@ -1038,4 +1042,28 @@ XlsxObjectPositionData WorksheetPrivate::pixelsToEMUs(const XlsxObjectPositionDa
return result;
}
QByteArray Worksheet::saveToXmlData()
{
QByteArray data;
QBuffer buffer(&data);
buffer.open(QIODevice::WriteOnly);
saveToXmlFile(&buffer);
return data;
}
QSharedPointer<Worksheet> Worksheet::loadFromXmlFile(QIODevice *device)
{
return QSharedPointer<Worksheet>(new Worksheet(QString()));
}
QSharedPointer<Worksheet> Worksheet::loadFromXmlData(const QByteArray &data)
{
QBuffer buffer;
buffer.setData(data);
buffer.open(QIODevice::ReadOnly);
return loadFromXmlFile(&buffer);
}
} //namespace