Add read support for error cell type

This commit is contained in:
Debao Zhang
2013-10-24 17:32:56 +08:00
parent 92a415425e
commit eee0a52b82
2 changed files with 21 additions and 0 deletions
+16
View File
@@ -1203,6 +1203,22 @@ void WorksheetPrivate::readSheetData(XmlStreamReader &reader)
QSharedPointer<Cell> data = readNumericCellData(reader);
data->d_ptr->format = format;
cellTable[pos.x()][pos.y()] = data;
} else if (type == QLatin1String("e")) {
//error type, such as #DIV/0! #NULL! #REF! etc
QString v_str, f_str;
while (!(reader.name() == QLatin1String("c") && reader.tokenType() == QXmlStreamReader::EndElement)) {
reader.readNextStartElement();
if (reader.tokenType() == QXmlStreamReader::StartElement) {
if (reader.name() == QLatin1String("v"))
v_str = reader.readElementText();
else if (reader.name() == QLatin1String("f"))
f_str = reader.readElementText();
}
}
QSharedPointer<Cell> data(new Cell(v_str, Cell::Error, format));
if (!f_str.isEmpty())
data->d_ptr->formula = f_str;
cellTable[pos.x()][pos.y()] = data;
} else if (type == QLatin1String("n")) {
QSharedPointer<Cell> data = readNumericCellData(reader);
data->d_ptr->format = format;