Skip to content
Open
Show file tree
Hide file tree
Changes from 5 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();
Comment thread
xris1658 marked this conversation as resolved.
Outdated
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) {
Comment thread
xris1658 marked this conversation as resolved.
Outdated
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.append(CellRange(1, 1, 1, 1));
}

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