Improve worksheets support
This commit is contained in:
@@ -94,7 +94,7 @@ int main()
|
|||||||
|
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
//The default sheet is "Sheet1"
|
//The default sheet is "Sheet1"
|
||||||
xlsx.setSheetName("Aligns & Borders");
|
xlsx.renameWorksheet("Sheet1", "Aligns & Borders");
|
||||||
xlsx.setColumn("B", "B", 20);
|
xlsx.setColumn("B", "B", 20);
|
||||||
xlsx.setColumn("H", "H", 12);
|
xlsx.setColumn("H", "H", 12);
|
||||||
xlsx.currentWorksheet()->setGridLinesVisible(false);
|
xlsx.currentWorksheet()->setGridLinesVisible(false);
|
||||||
|
|||||||
+73
-14
@@ -42,7 +42,7 @@ DocumentPrivate::DocumentPrivate(Document *p) :
|
|||||||
|
|
||||||
void DocumentPrivate::init()
|
void DocumentPrivate::init()
|
||||||
{
|
{
|
||||||
if (workbook->worksheets().size() == 0)
|
if (workbook->worksheetCount() == 0)
|
||||||
workbook->addWorksheet();
|
workbook->addWorksheet();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -375,19 +375,56 @@ bool Document::insertWorkSheet(int index, const QString &name)
|
|||||||
return d->workbook->insertWorkSheet(index, name);
|
return d->workbook->insertWorkSheet(index, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Rename the worksheet from \a oldName to \a newName.
|
||||||
|
Returns true if the success.
|
||||||
|
*/
|
||||||
|
bool Document::renameWorksheet(const QString &oldName, const QString &newName)
|
||||||
|
{
|
||||||
|
Q_D(Document);
|
||||||
|
if (oldName == newName)
|
||||||
|
return false;
|
||||||
|
return d->workbook->renameWorksheet(worksheetNames().indexOf(oldName), newName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Make a copy of the worksheet \a srcName with the new name \a distName.
|
||||||
|
Returns true if the success.
|
||||||
|
*/
|
||||||
|
bool Document::copyWorksheet(const QString &srcName, const QString &distName)
|
||||||
|
{
|
||||||
|
Q_D(Document);
|
||||||
|
if (srcName == distName)
|
||||||
|
return false;
|
||||||
|
return d->workbook->copyWorksheet(worksheetNames().indexOf(srcName), distName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Move the worksheet \a srcName to the new pos \a distIndex.
|
||||||
|
Returns true if the success.
|
||||||
|
*/
|
||||||
|
bool Document::moveWorksheet(const QString &srcName, int distIndex)
|
||||||
|
{
|
||||||
|
Q_D(Document);
|
||||||
|
return d->workbook->moveWorksheet(worksheetNames().indexOf(srcName), distIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Delete the worksheet \a name.
|
||||||
|
*/
|
||||||
|
bool Document::deleteWorksheet(const QString &name)
|
||||||
|
{
|
||||||
|
Q_D(Document);
|
||||||
|
return d->workbook->deleteWorksheet(worksheetNames().indexOf(name));
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Rename current worksheet to new \a name.
|
Rename current worksheet to new \a name.
|
||||||
Returns true if the name defined successful.
|
Returns true if the name defined successful.
|
||||||
*/
|
*/
|
||||||
bool Document::setSheetName(const QString &name)
|
bool Document::setSheetName(const QString &name)
|
||||||
{
|
{
|
||||||
Q_D(Document);
|
return renameWorksheet(currentWorksheet()->sheetName(), name);
|
||||||
for (int i=0; i<d->workbook->worksheets().size(); ++i) {
|
|
||||||
if (d->workbook->worksheets()[i]->sheetName() == name)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
currentWorksheet()->setSheetName(name);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -396,10 +433,10 @@ bool Document::setSheetName(const QString &name)
|
|||||||
Worksheet *Document::currentWorksheet() const
|
Worksheet *Document::currentWorksheet() const
|
||||||
{
|
{
|
||||||
Q_D(const Document);
|
Q_D(const Document);
|
||||||
if (d->workbook->worksheets().size() == 0)
|
if (d->workbook->worksheetCount() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return d->workbook->worksheets().at(d->workbook->activeWorksheet()).data();
|
return d->workbook->activeWorksheet();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -412,15 +449,37 @@ void Document::setCurrentWorksheet(int index)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Set current worksheet to be the sheet named \a name.
|
* \brief Set current selected worksheet to be the sheet named \a name.
|
||||||
*/
|
*/
|
||||||
void Document::setCurrentWorksheet(const QString &name)
|
void Document::setCurrentWorksheet(const QString &name)
|
||||||
|
{
|
||||||
|
selectWorksheet(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Set current selected worksheet to be the sheet named \a name.
|
||||||
|
*/
|
||||||
|
bool Document::selectWorksheet(const QString &name)
|
||||||
{
|
{
|
||||||
Q_D(Document);
|
Q_D(Document);
|
||||||
for (int i=0; i<d->workbook->worksheets().size(); ++i) {
|
for (int i=0; i<d->workbook->worksheetCount(); ++i) {
|
||||||
if (d->workbook->worksheets()[i]->sheetName() == name)
|
if (d->workbook->worksheet(i)->sheetName() == name)
|
||||||
d->workbook->setActiveWorksheet(i);
|
return d->workbook->setActiveWorksheet(i);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns the names of worksheets contained in current document.
|
||||||
|
*/
|
||||||
|
QStringList Document::worksheetNames() const
|
||||||
|
{
|
||||||
|
Q_D(const Document);
|
||||||
|
QStringList names;
|
||||||
|
for (int i=0; i<d->workbook->worksheetCount(); ++i)
|
||||||
|
names.append(d->workbook->worksheet(i)->sheetName());
|
||||||
|
|
||||||
|
return names;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -83,14 +83,20 @@ public:
|
|||||||
void setDocumentProperty(const QString &name, const QString &property);
|
void setDocumentProperty(const QString &name, const QString &property);
|
||||||
QStringList documentPropertyNames() const;
|
QStringList documentPropertyNames() const;
|
||||||
|
|
||||||
|
QStringList worksheetNames() const;
|
||||||
bool addWorksheet(const QString &name = QString());
|
bool addWorksheet(const QString &name = QString());
|
||||||
bool insertWorkSheet(int index, const QString &name = QString());
|
bool insertWorkSheet(int index, const QString &name = QString());
|
||||||
bool setSheetName(const QString &name);
|
bool selectWorksheet(const QString &name);
|
||||||
|
bool renameWorksheet(const QString &oldName, const QString &newName);
|
||||||
|
bool copyWorksheet(const QString &srcName, const QString &distName);
|
||||||
|
bool moveWorksheet(const QString &srcName, int distIndex);
|
||||||
|
bool deleteWorksheet(const QString &name);
|
||||||
|
|
||||||
Workbook *workbook() const;
|
Workbook *workbook() const;
|
||||||
Worksheet *currentWorksheet() const;
|
Worksheet *currentWorksheet() const;
|
||||||
void setCurrentWorksheet(int index);
|
Q_DECL_DEPRECATED bool setSheetName(const QString &name);
|
||||||
void setCurrentWorksheet(const QString &name);
|
Q_DECL_DEPRECATED void setCurrentWorksheet(int index);
|
||||||
|
Q_DECL_DEPRECATED void setCurrentWorksheet(const QString &name);
|
||||||
|
|
||||||
bool save();
|
bool save();
|
||||||
bool saveAs(const QString &xlsXname);
|
bool saveAs(const QString &xlsXname);
|
||||||
|
|||||||
+20
-21
@@ -80,7 +80,6 @@ namespace QXlsx {
|
|||||||
The Packager class coordinates the classes that represent the
|
The Packager class coordinates the classes that represent the
|
||||||
elements of the package and writes them into the XLSX file.
|
elements of the package and writes them into the XLSX file.
|
||||||
*/
|
*/
|
||||||
typedef QSharedPointer<Worksheet> WorksheetPtrType;
|
|
||||||
|
|
||||||
Package::Package(Document *document) :
|
Package::Package(Document *document) :
|
||||||
m_document(document)
|
m_document(document)
|
||||||
@@ -88,7 +87,8 @@ Package::Package(Document *document) :
|
|||||||
m_workbook = m_document->workbook();
|
m_workbook = m_document->workbook();
|
||||||
m_worksheet_count = 0;
|
m_worksheet_count = 0;
|
||||||
m_chartsheet_count = 0;
|
m_chartsheet_count = 0;
|
||||||
foreach (WorksheetPtrType sheet, m_workbook->worksheets()) {
|
for (int i=0; i<m_workbook->worksheetCount(); ++i) {
|
||||||
|
Worksheet *sheet = m_workbook->worksheet(i);
|
||||||
if (sheet->isChartsheet())
|
if (sheet->isChartsheet())
|
||||||
m_chartsheet_count += 1;
|
m_chartsheet_count += 1;
|
||||||
else
|
else
|
||||||
@@ -226,13 +226,12 @@ bool Package::createPackage(QIODevice *package)
|
|||||||
|
|
||||||
void Package::writeWorksheetFiles(ZipWriter &zipWriter)
|
void Package::writeWorksheetFiles(ZipWriter &zipWriter)
|
||||||
{
|
{
|
||||||
int index = 1;
|
for (int i=0; i<m_workbook->worksheetCount(); ++i) {
|
||||||
foreach (WorksheetPtrType sheet, m_workbook->worksheets()) {
|
Worksheet *sheet = m_workbook->worksheet(i);
|
||||||
if (sheet->isChartsheet())
|
if (sheet->isChartsheet())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
zipWriter.addFile(QStringLiteral("xl/worksheets/sheet%1.xml").arg(index), sheet->saveToXmlData());
|
zipWriter.addFile(QStringLiteral("xl/worksheets/sheet%1.xml").arg(i+1), sheet->saveToXmlData());
|
||||||
index += 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,13 +257,12 @@ void Package::writeContentTypesFile(ZipWriter &zipWriter)
|
|||||||
{
|
{
|
||||||
ContentTypes content;
|
ContentTypes content;
|
||||||
|
|
||||||
int worksheet_index = 1;
|
for (int i=0; i<m_workbook->worksheetCount(); ++i) {
|
||||||
foreach (WorksheetPtrType sheet, m_workbook->worksheets()) {
|
Worksheet *sheet = m_workbook->worksheet(i);
|
||||||
if (sheet->isChartsheet()) {
|
if (sheet->isChartsheet()) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
content.addWorksheetName(QStringLiteral("sheet%1").arg(worksheet_index));
|
content.addWorksheetName(QStringLiteral("sheet%1").arg(i+1));
|
||||||
worksheet_index += 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -301,13 +299,15 @@ void Package::writeDocPropsAppFile(ZipWriter &zipWriter)
|
|||||||
props.addHeadingPair(QStringLiteral("Chartsheets"), m_chartsheet_count);
|
props.addHeadingPair(QStringLiteral("Chartsheets"), m_chartsheet_count);
|
||||||
|
|
||||||
//Add worksheet parts
|
//Add worksheet parts
|
||||||
foreach (WorksheetPtrType sheet, m_workbook->worksheets()){
|
for (int i=0; i<m_workbook->worksheetCount(); ++i) {
|
||||||
|
Worksheet *sheet = m_workbook->worksheet(i);
|
||||||
if (!sheet->isChartsheet())
|
if (!sheet->isChartsheet())
|
||||||
props.addPartTitle(sheet->sheetName());
|
props.addPartTitle(sheet->sheetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
//Add the chartsheet parts
|
//Add the chartsheet parts
|
||||||
foreach (WorksheetPtrType sheet, m_workbook->worksheets()){
|
for (int i=0; i<m_workbook->worksheetCount(); ++i) {
|
||||||
|
Worksheet *sheet = m_workbook->worksheet(i);
|
||||||
if (sheet->isChartsheet())
|
if (sheet->isChartsheet())
|
||||||
props.addPartTitle(sheet->sheetName());
|
props.addPartTitle(sheet->sheetName());
|
||||||
}
|
}
|
||||||
@@ -360,7 +360,8 @@ void Package::writeWorkbookRelsFile(ZipWriter &zipWriter)
|
|||||||
|
|
||||||
int worksheet_index = 1;
|
int worksheet_index = 1;
|
||||||
int chartsheet_index = 1;
|
int chartsheet_index = 1;
|
||||||
foreach (WorksheetPtrType sheet, m_workbook->worksheets()) {
|
for (int i=0; i<m_workbook->worksheetCount(); ++i) {
|
||||||
|
Worksheet *sheet = m_workbook->worksheet(i);
|
||||||
if (sheet->isChartsheet()) {
|
if (sheet->isChartsheet()) {
|
||||||
rels.addDocumentRelationship(QStringLiteral("/chartsheet"), QStringLiteral("chartsheets/sheet%1.xml").arg(chartsheet_index));
|
rels.addDocumentRelationship(QStringLiteral("/chartsheet"), QStringLiteral("chartsheets/sheet%1.xml").arg(chartsheet_index));
|
||||||
chartsheet_index += 1;
|
chartsheet_index += 1;
|
||||||
@@ -381,8 +382,8 @@ void Package::writeWorkbookRelsFile(ZipWriter &zipWriter)
|
|||||||
|
|
||||||
void Package::writeWorksheetRelsFiles(ZipWriter &zipWriter)
|
void Package::writeWorksheetRelsFiles(ZipWriter &zipWriter)
|
||||||
{
|
{
|
||||||
int index = 1;
|
for (int i=0; i<m_workbook->worksheetCount(); ++i) {
|
||||||
foreach (WorksheetPtrType sheet, m_workbook->worksheets()) {
|
Worksheet *sheet = m_workbook->worksheet(i);
|
||||||
if (sheet->isChartsheet())
|
if (sheet->isChartsheet())
|
||||||
continue;
|
continue;
|
||||||
Relationships rels;
|
Relationships rels;
|
||||||
@@ -392,15 +393,14 @@ void Package::writeWorksheetRelsFiles(ZipWriter &zipWriter)
|
|||||||
foreach (QString link, sheet->externDrawingList())
|
foreach (QString link, sheet->externDrawingList())
|
||||||
rels.addWorksheetRelationship(QStringLiteral("/drawing"), link);
|
rels.addWorksheetRelationship(QStringLiteral("/drawing"), link);
|
||||||
|
|
||||||
zipWriter.addFile(QStringLiteral("xl/worksheets/_rels/sheet%1.xml.rels").arg(index), rels.saveToXmlData());
|
zipWriter.addFile(QStringLiteral("xl/worksheets/_rels/sheet%1.xml.rels").arg(i+1), rels.saveToXmlData());
|
||||||
index += 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Package::writeDrawingRelsFiles(ZipWriter &zipWriter)
|
void Package::writeDrawingRelsFiles(ZipWriter &zipWriter)
|
||||||
{
|
{
|
||||||
int index = 1;
|
for (int i=0; i<m_workbook->worksheetCount(); ++i) {
|
||||||
foreach (WorksheetPtrType sheet, m_workbook->worksheets()) {
|
Worksheet *sheet = m_workbook->worksheet(i);
|
||||||
if (sheet->drawingLinks().size() == 0)
|
if (sheet->drawingLinks().size() == 0)
|
||||||
continue;
|
continue;
|
||||||
Relationships rels;
|
Relationships rels;
|
||||||
@@ -409,8 +409,7 @@ void Package::writeDrawingRelsFiles(ZipWriter &zipWriter)
|
|||||||
foreach (PairType pair, sheet->drawingLinks())
|
foreach (PairType pair, sheet->drawingLinks())
|
||||||
rels.addDocumentRelationship(pair.first, pair.second);
|
rels.addDocumentRelationship(pair.first, pair.second);
|
||||||
|
|
||||||
zipWriter.addFile(QStringLiteral("xl/drawings/_rels/drawing%1.xml.rels").arg(index), rels.saveToXmlData());
|
zipWriter.addFile(QStringLiteral("xl/drawings/_rels/drawing%1.xml.rels").arg(i+1), rels.saveToXmlData());
|
||||||
index += 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+91
-10
@@ -54,7 +54,7 @@ WorkbookPrivate::WorkbookPrivate(Workbook *q) :
|
|||||||
strings_to_numbers_enabled = false;
|
strings_to_numbers_enabled = false;
|
||||||
date1904 = false;
|
date1904 = false;
|
||||||
defaultDateFormat = QStringLiteral("yyyy-mm-dd");
|
defaultDateFormat = QStringLiteral("yyyy-mm-dd");
|
||||||
activesheet = 0;
|
activesheetIndex = 0;
|
||||||
firstsheet = 0;
|
firstsheet = 0;
|
||||||
table_count = 0;
|
table_count = 0;
|
||||||
|
|
||||||
@@ -205,24 +205,85 @@ Worksheet *Workbook::insertWorkSheet(int index, const QString &name)
|
|||||||
++d->last_sheet_id;
|
++d->last_sheet_id;
|
||||||
Worksheet *sheet = new Worksheet(worksheetName, d->last_sheet_id, this);
|
Worksheet *sheet = new Worksheet(worksheetName, d->last_sheet_id, this);
|
||||||
d->worksheets.insert(index, QSharedPointer<Worksheet>(sheet));
|
d->worksheets.insert(index, QSharedPointer<Worksheet>(sheet));
|
||||||
d->activesheet = index;
|
d->activesheetIndex = index;
|
||||||
return sheet;
|
return sheet;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Workbook::activeWorksheet() const
|
/*!
|
||||||
|
* Returns current active worksheet.
|
||||||
|
*/
|
||||||
|
Worksheet *Workbook::activeWorksheet() const
|
||||||
{
|
{
|
||||||
Q_D(const Workbook);
|
Q_D(const Workbook);
|
||||||
return d->activesheet;
|
return d->worksheets[d->activesheetIndex].data();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Workbook::setActiveWorksheet(int index)
|
bool Workbook::setActiveWorksheet(int index)
|
||||||
{
|
{
|
||||||
Q_D(Workbook);
|
Q_D(Workbook);
|
||||||
if (index < 0 || index >= d->worksheets.size()) {
|
if (index < 0 || index >= d->worksheets.size()) {
|
||||||
//warning
|
//warning
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
d->activesheet = index;
|
d->activesheetIndex = index;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Rename the worksheet at the \a index to \a name.
|
||||||
|
*/
|
||||||
|
bool Workbook::renameWorksheet(int index, const QString &name)
|
||||||
|
{
|
||||||
|
Q_D(Workbook);
|
||||||
|
//If user given an already in-used name, return false
|
||||||
|
for (int i=0; i<d->worksheets.size(); ++i) {
|
||||||
|
if (d->worksheets[i]->sheetName() == name)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
d->worksheets[index]->setSheetName(name);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Remove the worksheet at pos \a index.
|
||||||
|
*/
|
||||||
|
bool Workbook::deleteWorksheet(int index)
|
||||||
|
{
|
||||||
|
Q_D(Workbook);
|
||||||
|
if (index < 0 || index >= d->worksheets.size())
|
||||||
|
return false;
|
||||||
|
d->worksheets.removeAt(index);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Moves the worksheet form \a srcIndex to \a distIndex.
|
||||||
|
*/
|
||||||
|
bool Workbook::moveWorksheet(int srcIndex, int distIndex)
|
||||||
|
{
|
||||||
|
Q_D(Workbook);
|
||||||
|
if (srcIndex == distIndex)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (srcIndex < 0 || srcIndex >= d->worksheets.size())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
QSharedPointer<Worksheet> sheet = d->worksheets.takeAt(srcIndex);
|
||||||
|
if (distIndex >= 0 || distIndex <= d->worksheets.size())
|
||||||
|
d->worksheets.insert(distIndex, sheet);
|
||||||
|
else
|
||||||
|
d->worksheets.append(sheet);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Workbook::copyWorksheet(int index, const QString &newName)
|
||||||
|
{
|
||||||
|
Q_D(Workbook);
|
||||||
|
if (index < 0 || index >= d->worksheets.size())
|
||||||
|
return false;
|
||||||
|
//! Todo
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QSharedPointer<Worksheet> > Workbook::worksheets() const
|
QList<QSharedPointer<Worksheet> > Workbook::worksheets() const
|
||||||
@@ -231,6 +292,26 @@ QList<QSharedPointer<Worksheet> > Workbook::worksheets() const
|
|||||||
return d->worksheets;
|
return d->worksheets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns count of worksheets.
|
||||||
|
*/
|
||||||
|
int Workbook::worksheetCount() const
|
||||||
|
{
|
||||||
|
Q_D(const Workbook);
|
||||||
|
return d->worksheets.count();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns the sheet object at index \a sheetIndex.
|
||||||
|
*/
|
||||||
|
Worksheet *Workbook::worksheet(int index) const
|
||||||
|
{
|
||||||
|
Q_D(const Workbook);
|
||||||
|
if (index < 0 || index >= d->worksheets.size())
|
||||||
|
return 0;
|
||||||
|
return d->worksheets.at(index).data();
|
||||||
|
}
|
||||||
|
|
||||||
SharedStrings *Workbook::sharedStrings() const
|
SharedStrings *Workbook::sharedStrings() const
|
||||||
{
|
{
|
||||||
Q_D(const Workbook);
|
Q_D(const Workbook);
|
||||||
@@ -321,8 +402,8 @@ void Workbook::saveToXmlFile(QIODevice *device)
|
|||||||
if (d->firstsheet > 0)
|
if (d->firstsheet > 0)
|
||||||
writer.writeAttribute(QStringLiteral("firstSheet"), QString::number(d->firstsheet + 1));
|
writer.writeAttribute(QStringLiteral("firstSheet"), QString::number(d->firstsheet + 1));
|
||||||
//Store the activeTab when it isn't the first sheet
|
//Store the activeTab when it isn't the first sheet
|
||||||
if (d->activesheet > 0)
|
if (d->activesheetIndex > 0)
|
||||||
writer.writeAttribute(QStringLiteral("activeTab"), QString::number(d->activesheet));
|
writer.writeAttribute(QStringLiteral("activeTab"), QString::number(d->activesheetIndex));
|
||||||
writer.writeEndElement();//bookViews
|
writer.writeEndElement();//bookViews
|
||||||
|
|
||||||
writer.writeStartElement(QStringLiteral("sheets"));
|
writer.writeStartElement(QStringLiteral("sheets"));
|
||||||
@@ -415,7 +496,7 @@ bool Workbook::loadFromXmlFile(QIODevice *device)
|
|||||||
if (attrs.hasAttribute(QLatin1String("firstSheet")))
|
if (attrs.hasAttribute(QLatin1String("firstSheet")))
|
||||||
d->firstsheet = attrs.value(QLatin1String("firstSheet")).toString().toInt();
|
d->firstsheet = attrs.value(QLatin1String("firstSheet")).toString().toInt();
|
||||||
if (attrs.hasAttribute(QLatin1String("activeTab")))
|
if (attrs.hasAttribute(QLatin1String("activeTab")))
|
||||||
d->activesheet = attrs.value(QLatin1String("activeTab")).toString().toInt();
|
d->activesheetIndex = attrs.value(QLatin1String("activeTab")).toString().toInt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-3
@@ -50,11 +50,19 @@ class Q_XLSX_EXPORT Workbook
|
|||||||
public:
|
public:
|
||||||
~Workbook();
|
~Workbook();
|
||||||
|
|
||||||
QList<QSharedPointer<Worksheet> > worksheets() const;
|
Q_DECL_DEPRECATED QList<QSharedPointer<Worksheet> > worksheets() const;
|
||||||
|
int worksheetCount() const;
|
||||||
|
Worksheet *worksheet(int sheetIndex) const;
|
||||||
|
|
||||||
Worksheet *addWorksheet(const QString &name = QString());
|
Worksheet *addWorksheet(const QString &name = QString());
|
||||||
Worksheet *insertWorkSheet(int index, const QString &name = QString());
|
Worksheet *insertWorkSheet(int index, const QString &name = QString());
|
||||||
int activeWorksheet() const;
|
bool renameWorksheet(int index, const QString &name);
|
||||||
void setActiveWorksheet(int index);
|
bool deleteWorksheet(int index);
|
||||||
|
bool copyWorksheet(int index, const QString &newName);
|
||||||
|
bool moveWorksheet(int srcIndex, int distIndex);
|
||||||
|
|
||||||
|
Worksheet *activeWorksheet() const;
|
||||||
|
bool setActiveWorksheet(int index);
|
||||||
|
|
||||||
// void addChart();
|
// void addChart();
|
||||||
bool defineName(const QString &name, const QString &formula, const QString &comment=QString(), const QString &scope=QString());
|
bool defineName(const QString &name, const QString &formula, const QString &comment=QString(), const QString &scope=QString());
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public:
|
|||||||
int window_width;
|
int window_width;
|
||||||
int window_height;
|
int window_height;
|
||||||
|
|
||||||
int activesheet;
|
int activesheetIndex;
|
||||||
int firstsheet;
|
int firstsheet;
|
||||||
int table_count;
|
int table_count;
|
||||||
|
|
||||||
|
|||||||
@@ -198,6 +198,9 @@ QString Worksheet::sheetName() const
|
|||||||
return d->name;
|
return d->name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \internal
|
||||||
|
*/
|
||||||
void Worksheet::setSheetName(const QString &sheetName)
|
void Worksheet::setSheetName(const QString &sheetName)
|
||||||
{
|
{
|
||||||
Q_D(Worksheet);
|
Q_D(Worksheet);
|
||||||
|
|||||||
Reference in New Issue
Block a user