В статье описана функция, которая вам поможет сохранять из таблицы данные в CSV формат, который читается Excel.
Написал вот такую функцию. Она сохраняет всё содержимое таблицы, включая вертикальный столбец и горизонтальную строку заголовков. Единственно, чего нет, так как это экранирования двойных кавычек.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
void MainWindow::saveAsCSV(QString filename) { QFile f(filename); if( f.open( QIODevice::WriteOnly ) ) { QTextStream ts( &f ); QStringList strList; strList << "\" \""; for( int c = 0; c < ui->tableView->horizontalHeader()->count(); ++c ) strList << "\""+ui->tableView->model()->headerData(c, Qt::Horizontal).toString()+"\""; ts << strList.join( ";" )+"\n"; for( int r = 0; r < ui->tableView->verticalHeader()->count(); ++r ) { strList.clear(); strList << "\""+ui->tableView->model()->headerData(r, Qt::Vertical).toString()+"\""; for( int c = 0; c < ui->tableView->horizontalHeader()->count(); ++c ) { strList << "\""+ui->tableView->model()->data(ui->tableView->model()->index(r, c), Qt::DisplayRole).toString()+"\""; } ts << strList.join( ";" )+"\n"; } f.close(); } } |
Заголовочные файлы подключите те, что попросит Qt при компиляции.
В статье http://blog.harrix.org/?p=1523 узнаете, как добавлять данные в QTableView.