Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions QXlsx/header/xlsxworksheet.h
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,12 @@ class QXLSX_EXPORT Worksheet : public AbstractSheet
void setWhiteSpaceVisible(bool visible);
bool setStartPage(int spagen); // add by liufeijin20181028

CellReference getActiveCell();
void setActiveCell(CellReference cell);
void setActiveCell(int row, int col);
QList<CellRange> getSqref();
void setSqref(const QList<CellRange>& sqref);

QVector<CellLocation> getFullCells(int *maxRow, int *maxCol) const;

private:
Expand Down
3 changes: 3 additions & 0 deletions QXlsx/header/xlsxworksheet_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,9 @@ class WorksheetPrivate : public AbstractSheetPrivate

QRegularExpression urlPattern;

CellReference activeCell;
QList<CellRange> sqref;

private:
static double calculateColWidth(int characters);
};
Expand Down
47 changes: 47 additions & 0 deletions QXlsx/source/xlsxworksheet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ WorksheetPrivate::WorksheetPrivate(Worksheet *p, Worksheet::CreateFlag flag)
, showOutlineSymbols(true)
, showWhiteSpace(true)
, urlPattern(QStringLiteral("^([fh]tt?ps?://)|(mailto:)|(file://)"))
, activeCell(1, 1)
, sqref({CellRange(1, 1, 1, 1)})
{
}

Expand Down Expand Up @@ -1324,6 +1326,18 @@ void Worksheet::saveToXmlFile(QIODevice *device) const
if (!d->showWhiteSpace)
writer.writeAttribute(QStringLiteral("showWhiteSpace"), QStringLiteral("0"));
writer.writeAttribute(QStringLiteral("workbookViewId"), QStringLiteral("0"));
writer.writeStartElement(QStringLiteral("selection"));
writer.writeAttribute(QStringLiteral("activeCell"), d->activeCell.toString());
QString sqrefString;
for (auto it = d->sqref.begin(); it != d->sqref.end(); ++it) {
if(it != d->sqref.begin())
{
sqrefString.push_back(u' ');
}
sqrefString.append(it->toString());
}
writer.writeAttribute(QStringLiteral("sqref"), sqrefString);
writer.writeEndElement(); // selection
writer.writeEndElement(); // sheetView
writer.writeEndElement(); // sheetViews

Expand Down Expand Up @@ -1481,6 +1495,39 @@ bool Worksheet::setStartPage(int spagen)
}
//}}

CellReference Worksheet::getActiveCell()
{
Q_D(Worksheet);
return d->activeCell;
}

void Worksheet::setActiveCell(CellReference cell)
{
Q_D(Worksheet);
d->activeCell = cell;
}

void Worksheet::setActiveCell(int row, int col)
{
Q_D(Worksheet);
d->activeCell.setRow(row);
d->activeCell.setColumn(col);
}

QList<CellRange> Worksheet::getSqref()
{
Q_D(Worksheet);
return d->sqref;
}

void Worksheet::setSqref(const QList<CellRange>& sqref)
{
Q_D(Worksheet);
d->sqref = sqref;
if(d->sqref.empty())
d->sqref.emplace_back(1, 1, 1, 1);
}

void WorksheetPrivate::saveXmlSheetData(QXmlStreamWriter &writer) const
{
calculateSpans();
Expand Down