Browse Source

Add default datetime format for workbook

master
Debao Zhang 11 years ago
parent
commit
895a30524d
  1. 4
      examples/xlsx/style/main.cpp
  2. 14
      src/xlsx/xlsxworkbook.cpp
  3. 2
      src/xlsx/xlsxworkbook.h
  4. 1
      src/xlsx/xlsxworkbook_p.h
  5. 4
      src/xlsx/xlsxworksheet.cpp

4
examples/xlsx/style/main.cpp

@ -42,9 +42,7 @@ int main()
xlsx.write(row, col, row+col);
xlsx.setColumn(8, 15, 5.0, format4);
QXlsx::Format *format5 = xlsx.createFormat();
format5->setNumberFormatIndex(22);
xlsx.write("A5", QDate(2013, 8, 29), format5);
xlsx.write("A5", QDate(2013, 8, 29));
QXlsx::Format *format6 = xlsx.createFormat();
format6->setPatternBackgroundColor(QColor(Qt::gray));

14
src/xlsx/xlsxworkbook.cpp

@ -51,6 +51,7 @@ WorkbookPrivate::WorkbookPrivate(Workbook *q) :
strings_to_numbers_enabled = false;
date1904 = false;
defaultDateFormat = QStringLiteral("dd/mm/yyyy hh:mm");
activesheet = 0;
firstsheet = 0;
table_count = 0;
@ -105,6 +106,19 @@ bool Workbook::isStringsToNumbersEnabled() const
return d->strings_to_numbers_enabled;
}
QString Workbook::defaultDateFormat() const
{
Q_D(const Workbook);
return d->defaultDateFormat;
}
void Workbook::setDefaultDateFormat(const QString &format)
{
Q_D(Workbook);
d->defaultDateFormat = format;
}
void Workbook::defineName(const QString &name, const QString &formula)
{

2
src/xlsx/xlsxworkbook.h

@ -63,6 +63,8 @@ public:
void setDate1904(bool date1904);
bool isStringsToNumbersEnabled() const;
void setStringsToNumbersEnabled(bool enable=true);
QString defaultDateFormat() const;
void setDefaultDateFormat(const QString &format);
private:
friend class Package;

1
src/xlsx/xlsxworkbook_p.h

@ -48,6 +48,7 @@ public:
bool strings_to_numbers_enabled;
bool date1904;
QString defaultDateFormat;
int x_window;
int y_window;

4
src/xlsx/xlsxworksheet.cpp

@ -421,6 +421,10 @@ int Worksheet::writeDateTime(int row, int column, const QDateTime &dt, Format *f
if (d->checkDimensions(row, column))
return -1;
if (!format) {
format = d->workbook->createFormat();
format->setNumberFormat(d->workbook->defaultDateFormat());
}
d->cellTable[row][column] = QSharedPointer<XlsxCellData>(new XlsxCellData(dt, XlsxCellData::DateTime, format));
d->workbook->styles()->addFormat(format);

Loading…
Cancel
Save