@@ -58,7 +58,9 @@ WorksheetPrivate::WorksheetPrivate(Worksheet *p, Worksheet::CreateFlag flag)
58
58
: AbstractSheetPrivate(p, flag)
59
59
, windowProtection(false ), showFormulas(false ), showGridLines(true ), showRowColHeaders(true )
60
60
, showZeros(true ), rightToLeft(false ), tabSelected(false ), showRuler(false )
61
- , showOutlineSymbols(true ), showWhiteSpace(true ), urlPattern(QStringLiteral(" ^([fh]tt?ps?://)|(mailto:)|(file://)" ))
61
+ , showOutlineSymbols(true ), showWhiteSpace(true )
62
+ , pageOrientationPortait(true ), fitToPage(false )
63
+ , urlPattern(QStringLiteral(" ^([fh]tt?ps?://)|(mailto:)|(file://)" ))
62
64
{
63
65
previous_row = 0 ;
64
66
@@ -67,6 +69,10 @@ WorksheetPrivate::WorksheetPrivate(Worksheet *p, Worksheet::CreateFlag flag)
67
69
68
70
default_row_height = 15 ;
69
71
default_row_zeroed = false ;
72
+
73
+ paperSize = 9 ;
74
+ fitToHeight = -1 ;
75
+ fitToWidth = -1 ;
70
76
}
71
77
72
78
WorksheetPrivate::~WorksheetPrivate ()
@@ -454,6 +460,72 @@ void Worksheet::setWhiteSpaceVisible(bool visible)
454
460
d->showWhiteSpace = visible;
455
461
}
456
462
463
+ int Worksheet::paperSize ()
464
+ {
465
+ Q_D (const Worksheet);
466
+ return d->paperSize ;
467
+ }
468
+
469
+ void Worksheet::setPaperSize (int size)
470
+ {
471
+ Q_D (Worksheet);
472
+ d->paperSize = size;
473
+ }
474
+
475
+ bool Worksheet::isLandscape ()
476
+ {
477
+ Q_D (const Worksheet);
478
+ return !d->pageOrientationPortait ;
479
+ }
480
+
481
+ bool Worksheet::isPortait ()
482
+ {
483
+ Q_D (const Worksheet);
484
+ return d->pageOrientationPortait ;
485
+ }
486
+
487
+ void Worksheet::setOrientation (bool isPortait)
488
+ {
489
+ Q_D (Worksheet);
490
+ d->pageOrientationPortait = isPortait;
491
+ }
492
+
493
+ bool Worksheet::fitToPage ()
494
+ {
495
+ Q_D (const Worksheet);
496
+ return d->fitToPage ;
497
+ }
498
+
499
+ void Worksheet::setFitToPage (bool fit)
500
+ {
501
+ Q_D (Worksheet);
502
+ d->fitToPage = fit;
503
+ }
504
+
505
+ int Worksheet::fitToWidth ()
506
+ {
507
+ Q_D (const Worksheet);
508
+ return d->fitToWidth ;
509
+ }
510
+
511
+ void Worksheet::setFitToWidth (int width)
512
+ {
513
+ Q_D (Worksheet);
514
+ d->fitToWidth = width;
515
+ }
516
+
517
+ int Worksheet::fitToHeight ()
518
+ {
519
+ Q_D (const Worksheet);
520
+ return d->fitToHeight ;
521
+ }
522
+
523
+ void Worksheet::setFitToHeight (int height)
524
+ {
525
+ Q_D (Worksheet);
526
+ d->fitToHeight = height;
527
+ }
528
+
457
529
/* !
458
530
* Write \a value to cell (\a row, \a column) with the \a format.
459
531
* Both \a row and \a column are all 1-indexed value.
@@ -1248,6 +1320,15 @@ void Worksheet::saveToXmlFile(QIODevice *device) const
1248
1320
// writer.writeAttribute("xmlns:x14ac", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac");
1249
1321
// writer.writeAttribute("mc:Ignorable", "x14ac");
1250
1322
1323
+ // fit To Page
1324
+ if (d->fitToPage ) {
1325
+ writer.writeStartElement (QStringLiteral (" sheetPr" ));
1326
+ writer.writeStartElement (QStringLiteral (" pageSetUpPr" ));
1327
+ writer.writeAttribute (QStringLiteral (" fitToPage" ), QStringLiteral (" 1" ));
1328
+ writer.writeEndElement ();// pageSetUpPr
1329
+ writer.writeEndElement ();// sheetPr
1330
+ }
1331
+
1251
1332
writer.writeStartElement (QStringLiteral (" dimension" ));
1252
1333
writer.writeAttribute (QStringLiteral (" ref" ), d->generateDimensionString ());
1253
1334
writer.writeEndElement ();// dimension
@@ -1323,6 +1404,26 @@ void Worksheet::saveToXmlFile(QIODevice *device) const
1323
1404
d->saveXmlSheetData (writer);
1324
1405
writer.writeEndElement ();// sheetData
1325
1406
1407
+ // PageSetup
1408
+ // writer.writeStartElement(QStringLiteral("pageMargins"));
1409
+ // writer.writeAttribute(QStringLiteral("left"), QStringLiteral("0.70866141732283472"));
1410
+ // writer.writeAttribute(QStringLiteral("right"), QStringLiteral("0.70866141732283472"));
1411
+ // writer.writeAttribute(QStringLiteral("top"), QStringLiteral("0.78740157480314965"));
1412
+ // writer.writeAttribute(QStringLiteral("bottom"), QStringLiteral("0.78740157480314965"));
1413
+ // writer.writeAttribute(QStringLiteral("header"), QStringLiteral("0.31496062992125984"));
1414
+ // writer.writeAttribute(QStringLiteral("footer"), QStringLiteral("0.31496062992125984"));
1415
+ // writer.writeEndElement();//pageMargins
1416
+ writer.writeStartElement (QStringLiteral (" pageSetup" ));
1417
+ writer.writeAttribute (QStringLiteral (" r:id" ), QStringLiteral (" rId1" ));
1418
+ writer.writeAttribute (QStringLiteral (" orientation" ),
1419
+ (d->pageOrientationPortait ? QStringLiteral (" portrait" ) : QStringLiteral (" landscape" )));
1420
+ writer.writeAttribute (QStringLiteral (" paperSize" ), QString::number (d->paperSize ));
1421
+ if (d->fitToWidth > -1 )
1422
+ writer.writeAttribute (QStringLiteral (" fitToWidth" ), QString::number (d->fitToWidth ));
1423
+ if (d->fitToHeight > -1 )
1424
+ writer.writeAttribute (QStringLiteral (" fitToHeight" ), QString::number (d->fitToHeight ));
1425
+ writer.writeEndElement ();// pageSetup
1426
+
1326
1427
d->saveXmlMergeCells (writer);
1327
1428
foreach (const ConditionalFormatting cf, d->conditionalFormattingList )
1328
1429
cf.saveToXml (writer);
@@ -2300,6 +2401,16 @@ void WorksheetPrivate::loadXmlHyperlinks(QXmlStreamReader &reader)
2300
2401
}
2301
2402
}
2302
2403
2404
+ void WorksheetPrivate::loadXmlPageSetup (QXmlStreamReader &reader)
2405
+ {
2406
+ Q_ASSERT (reader.name () == QLatin1String (" pageSetup" ));
2407
+ QXmlStreamAttributes attrs = reader.attributes ();
2408
+ // foreach (QXmlStreamAttribute at, attrs) {
2409
+ // qDebug() << "load 3" << at.name() << at.value();
2410
+ // }
2411
+ attrs.value (QLatin1String (" orientation" )) == QLatin1String (" QLatin1String" );
2412
+ }
2413
+
2303
2414
QList <QSharedPointer<XlsxColumnInfo> > WorksheetPrivate::getColumnInfoList (int colFirst, int colLast)
2304
2415
{
2305
2416
QList <QSharedPointer<XlsxColumnInfo> > columnsInfoList;
@@ -2360,6 +2471,8 @@ bool Worksheet::loadFromXmlFile(QIODevice *device)
2360
2471
d->dimension = CellRange (range);
2361
2472
} else if (reader.name () == QLatin1String (" sheetViews" )) {
2362
2473
d->loadXmlSheetViews (reader);
2474
+ } else if (reader.name () == QLatin1String (" pageSetup" )) {
2475
+ d->loadXmlPageSetup (reader);
2363
2476
} else if (reader.name () == QLatin1String (" sheetFormatPr" )) {
2364
2477
d->loadXmlSheetFormatProps (reader);
2365
2478
} else if (reader.name () == QLatin1String (" cols" )) {
0 commit comments