Browse Source

Don't create the default "Sheet1" worksheet

Unless the user want to access it, or the user want to save an empty
workbook.
master
Debao Zhang 11 years ago
parent
commit
a1e53218bb
  1. 4
      examples/xlsx/demo/main.cpp
  2. 3
      src/xlsx/xlsxdocument.cpp
  3. 4
      src/xlsx/xlsxworkbook.cpp
  4. 3
      tests/auto/document/tst_documenttest.cpp

4
examples/xlsx/demo/main.cpp

@ -93,8 +93,8 @@ int main()
Document xlsx; Document xlsx;
//--------------------------------------------------------------- //---------------------------------------------------------------
//The default sheet is "Sheet1" //Create the first sheet (Otherwise, default "Sheet1" will be created)
xlsx.renameSheet("Sheet1", "Aligns & Borders"); xlsx.addSheet("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);

3
src/xlsx/xlsxdocument.cpp

@ -96,9 +96,6 @@ void DocumentPrivate::init()
if (workbook.isNull()) if (workbook.isNull())
workbook = QSharedPointer<Workbook>(new Workbook(Workbook::F_NewFromScratch)); workbook = QSharedPointer<Workbook>(new Workbook(Workbook::F_NewFromScratch));
if (workbook->sheetCount() == 0)
workbook->addSheet();
} }
bool DocumentPrivate::loadPackage(QIODevice *device) bool DocumentPrivate::loadPackage(QIODevice *device)

4
src/xlsx/xlsxworkbook.cpp

@ -255,6 +255,8 @@ AbstractSheet *Workbook::insertSheet(int index, const QString &name, AbstractShe
AbstractSheet *Workbook::activeSheet() const AbstractSheet *Workbook::activeSheet() const
{ {
Q_D(const Workbook); Q_D(const Workbook);
if (d->sheets.isEmpty())
const_cast<Workbook*>(this)->addSheet();
return d->sheets[d->activesheetIndex].data(); return d->sheets[d->activesheetIndex].data();
} }
@ -426,6 +428,8 @@ void Workbook::saveToXmlFile(QIODevice *device) const
{ {
Q_D(const Workbook); Q_D(const Workbook);
d->relationships->clear(); d->relationships->clear();
if (d->sheets.isEmpty())
const_cast<Workbook *>(this)->addSheet();
QXmlStreamWriter writer(device); QXmlStreamWriter writer(device);

3
tests/auto/document/tst_documenttest.cpp

@ -308,6 +308,7 @@ void DocumentTest::testReadWriteTime()
void DocumentTest::testMoveWorksheet() void DocumentTest::testMoveWorksheet()
{ {
Document xlsx1; Document xlsx1;
xlsx1.addSheet();//Sheet1
xlsx1.addSheet(); xlsx1.addSheet();
QCOMPARE(xlsx1.sheetNames(), QStringList()<<"Sheet1"<<"Sheet2"); QCOMPARE(xlsx1.sheetNames(), QStringList()<<"Sheet1"<<"Sheet2");
@ -320,6 +321,7 @@ void DocumentTest::testMoveWorksheet()
void DocumentTest::testCopyWorksheet() void DocumentTest::testCopyWorksheet()
{ {
Document xlsx1; Document xlsx1;
xlsx1.addSheet();//Sheet1
xlsx1.addSheet(); xlsx1.addSheet();
xlsx1.write("A1", "String"); xlsx1.write("A1", "String");
xlsx1.write("A2", 999); xlsx1.write("A2", 999);
@ -342,6 +344,7 @@ void DocumentTest::testCopyWorksheet()
void DocumentTest::testDeleteWorksheet() void DocumentTest::testDeleteWorksheet()
{ {
Document xlsx1; Document xlsx1;
xlsx1.addSheet();//Sheet1
xlsx1.addSheet(); xlsx1.addSheet();
xlsx1.addSheet(); xlsx1.addSheet();

Loading…
Cancel
Save