Если вы знаете, что ваши данные следуют определенной структуре, это может сузить ваш вопрос. Но, в общем, то, что вам, вероятно, нужно, это реализовать что-то вроде:
class Table {
public:
std::vector<Row> rows;
}
class Row {
public:
std::vector<Cell> cells;
}
class Cell {
public:
int intValue;
double doubleValue;
// Etc
enum Datatype {...};
Datatype datatype;
}
Теперь, если вы знаете, что электронные таблицы содержат все двойные числа, вы можете исключить ячейку, а строки могут содержать вектор двойной величины. В противном случае вам придется быть более общим в этом вопросе.
В конечном итоге, однако, данные все равно теряются. Например, он не поддерживает формулы или форматирование. Все это будет потеряно. Это может иметь или не иметь значения.
Так что есть много вопросов, на которые вам все еще нужно ответить, чтобы настроить это дальше.