Add convenient function saveToXmlData() for worksheet
This commit is contained in:
@@ -180,22 +180,14 @@ void Package::writeWorksheetFiles(ZipWriter &zipWriter)
|
|||||||
if (sheet->isChartsheet())
|
if (sheet->isChartsheet())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
QByteArray data;
|
zipWriter.addFile(QStringLiteral("xl/worksheets/sheet%1.xml").arg(index), sheet->saveToXmlData());
|
||||||
QBuffer buffer(&data);
|
|
||||||
buffer.open(QIODevice::WriteOnly);
|
|
||||||
sheet->saveToXmlFile(&buffer);
|
|
||||||
zipWriter.addFile(QStringLiteral("xl/worksheets/sheet%1.xml").arg(index), data);
|
|
||||||
index += 1;
|
index += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Package::writeWorkbookFile(ZipWriter &zipWriter)
|
void Package::writeWorkbookFile(ZipWriter &zipWriter)
|
||||||
{
|
{
|
||||||
QByteArray data;
|
zipWriter.addFile(QStringLiteral("xl/workbook.xml"), m_workbook->saveToXmlData());
|
||||||
QBuffer buffer(&data);
|
|
||||||
buffer.open(QIODevice::WriteOnly);
|
|
||||||
m_workbook->saveToXmlFile(&buffer);
|
|
||||||
zipWriter.addFile(QStringLiteral("xl/workbook.xml"), data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Package::writeDrawingFiles(ZipWriter &zipWriter)
|
void Package::writeDrawingFiles(ZipWriter &zipWriter)
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QBuffer>
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
@@ -83,6 +84,9 @@ WorksheetPrivate::~WorksheetPrivate()
|
|||||||
|
|
||||||
foreach (XlsxColumnInfo *col, colsInfo)
|
foreach (XlsxColumnInfo *col, colsInfo)
|
||||||
delete col;
|
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 index Index of the worksheet in the workbook
|
||||||
* \param parent
|
* \param parent
|
||||||
*/
|
*/
|
||||||
Worksheet::Worksheet(const QString &name, Workbook *parent) :
|
Worksheet::Worksheet(const QString &name, Workbook *workbook) :
|
||||||
QObject(parent), d_ptr(new WorksheetPrivate(this))
|
d_ptr(new WorksheetPrivate(this))
|
||||||
{
|
{
|
||||||
d_ptr->name = name;
|
d_ptr->name = name;
|
||||||
d_ptr->workbook = parent;
|
d_ptr->workbook = workbook;
|
||||||
}
|
}
|
||||||
|
|
||||||
Worksheet::~Worksheet()
|
Worksheet::~Worksheet()
|
||||||
@@ -877,7 +881,7 @@ void Worksheet::prepareImage(int index, int image_id, int drawing_id)
|
|||||||
{
|
{
|
||||||
Q_D(Worksheet);
|
Q_D(Worksheet);
|
||||||
if (!d->drawing) {
|
if (!d->drawing) {
|
||||||
d->drawing = new Drawing(this);
|
d->drawing = new Drawing;
|
||||||
d->drawing->embedded = true;
|
d->drawing->embedded = true;
|
||||||
d->externDrawingList.append(QStringLiteral("../drawings/drawing%1.xml").arg(drawing_id));
|
d->externDrawingList.append(QStringLiteral("../drawings/drawing%1.xml").arg(drawing_id));
|
||||||
}
|
}
|
||||||
@@ -1038,4 +1042,28 @@ XlsxObjectPositionData WorksheetPrivate::pixelsToEMUs(const XlsxObjectPositionDa
|
|||||||
return result;
|
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
|
} //namespace
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#include <QMap>
|
#include <QMap>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
#include <QPointF>
|
#include <QPointF>
|
||||||
|
#include <QSharedPointer>
|
||||||
class QIODevice;
|
class QIODevice;
|
||||||
class QDateTime;
|
class QDateTime;
|
||||||
class QUrl;
|
class QUrl;
|
||||||
@@ -45,9 +46,8 @@ class Drawing;
|
|||||||
struct XlsxImageData;
|
struct XlsxImageData;
|
||||||
|
|
||||||
class WorksheetPrivate;
|
class WorksheetPrivate;
|
||||||
class Q_XLSX_EXPORT Worksheet : public QObject
|
class Q_XLSX_EXPORT Worksheet
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
Q_DECLARE_PRIVATE(Worksheet)
|
Q_DECLARE_PRIVATE(Worksheet)
|
||||||
public:
|
public:
|
||||||
int write(const QString row_column, const QVariant &value, Format *format=0);
|
int write(const QString row_column, const QVariant &value, Format *format=0);
|
||||||
@@ -74,11 +74,15 @@ public:
|
|||||||
void setZeroValuesHidden(bool enable);
|
void setZeroValuesHidden(bool enable);
|
||||||
|
|
||||||
void saveToXmlFile(QIODevice *device);
|
void saveToXmlFile(QIODevice *device);
|
||||||
|
QByteArray saveToXmlData();
|
||||||
|
static QSharedPointer<Worksheet> loadFromXmlFile(QIODevice *device);
|
||||||
|
static QSharedPointer<Worksheet> loadFromXmlData(const QByteArray &data);
|
||||||
|
|
||||||
~Worksheet();
|
~Worksheet();
|
||||||
private:
|
private:
|
||||||
friend class Package;
|
friend class Package;
|
||||||
friend class Workbook;
|
friend class Workbook;
|
||||||
Worksheet(const QString &sheetName, Workbook *parent=0);
|
Worksheet(const QString &sheetName, Workbook *book=0);
|
||||||
|
|
||||||
virtual bool isChartsheet() const;
|
virtual bool isChartsheet() const;
|
||||||
QString name() const;
|
QString name() const;
|
||||||
|
|||||||
Reference in New Issue
Block a user