QT将TableWidget 导出为excel的几种方法
来源:互联网 发布:淘宝空间图片协议在哪 编辑:程序博客网 时间:2024/06/05 02:07
1.使用OLE
原文链接:http://blog.csdn.net/cool222/article/details/38639647
2.转为html
因为excel识别html中的table 元素,所以可以按下文转换。
缺点:转换后的表格较为难看
void MainWindow::Table2ExcelByHtml(QTableWidget *table){ table->horizontalHeaderItem(0); //构建html文档内容 QString filepath = QFileDialog::getSaveFileName(this, tr("Save as..."), QString(), tr("EXCEL files (*.xls *.xlsx);;HTML-Files (*.htm *.html);;")); QString Begin = QString::fromLocal8Bit("<html><head></head><body><table border=\"1\" >"); QString end = QString::fromLocal8Bit("</table></body></html>"); QList<QString> list; int row = table->rowCount(); int col = table->columnCount();/* //若有列标题,取消此部分注释 QString header = "<tr>"; for(int i=0;i<col;i++) { QString cel = table->horizontalHeaderItem(i)->text(); header += QString("<td>%1</td>").arg(cel); } header += "</tr>"; list.push_back(header);*/ for(int i=0;i<row;i++) { QString rowStr = "<tr>"; for(int j=0;j<col;j++) { QString cel = table->item(i,j)->text(); rowStr += QString("<td>%1</td>").arg(cel); } rowStr += "</tr>"; list.push_back(rowStr); } QString text = Begin; for(int i=0;i<list.size();++i) { text.append(list.at(i)); } text.append(end); QTextEdit textEdit; textEdit.setText(text); QFile file(filepath); if(file.open(QFile::WriteOnly | QIODevice::Text)) { QTextStream ts(&file); ts.setCodec("UTF-8"); ts<<textEdit.document()->toHtml("UTF-8"); }}
同上,因为EXCEL可以以tab识别单元格,导出后的样式比上个方法较为好看。
void MainWindow::Table2ExcelByTxt(QTableWidget *table){ QString filepath = QFileDialog::getSaveFileName(this, tr("Save as..."), QString(), tr("EXCEL files (*.xls *.xlsx);;HTML-Files (*.txt);;")); int row = table->rowCount(); int col = table->columnCount(); QList<QString> list; //添加列标题 QString HeaderRow; for(int i=0;i<col;i++) { HeaderRow.append(table->horizontalHeaderItem(i)->text()+"\t"); } list.push_back(HeaderRow); for(int i=0;i<row;i++) { QString rowStr = ""; for(int j=0;j<col;j++){ rowStr += table->item(i,j)->text() + "\t"; } list.push_back(rowStr); } QTextEdit textEdit; for(int i=0;i<list.size();i++) { textEdit.append(list.at(i)); } QFile file(filepath); if(file.open(QFile::WriteOnly | QIODevice::Text)) { QTextStream ts(&file); ts.setCodec("UTF-8"); ts<<textEdit.document()->toPlainText(); file.close(); }}
0 0
- QT将TableWidget 导出为excel的几种方法
- Qt的tableWidget或tableView导出内容至EXCEL
- C#导出EXCEL的几种方法
- C#导出EXCEL的几种方法
- Web导出excel的几种方法
- 将DataGrid中的数据导出为Excel的方法
- ASP将access数据导出为excel电子表的方法
- C#将数据集DataSet中的数据导出到EXCEL文件的几种方法
- C#将数据集DataSet中的数据导出到EXCEL文件的几种方法
- asp中把数据导出为excel的几种方法
- 关于导出数据为Excel的几种方式
- 导出数据为Excel的几种方式
- 使用poi将数据导出为excel文件的几点注意
- pb9中使用htmltable方式将数据窗口导出为excel文件的几点看法
- 将DataGridView导出为Excel的函数
- 导出数据到Excel的几种方法
- 导出数据到Excel的几种方法
- 导出数据到Excel的几种方法
- Communication System dp 动态规划 || 贪心
- HDU 排序
- SGU 103 Traffic Lights(最短路)
- apache虚拟主机配置
- UVA839——天平
- QT将TableWidget 导出为excel的几种方法
- Linux下git通过proxy访问github
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- js闭包相关的内容
- 使用Keil MDK以及标准外设库创建STM32工程
- oracle多行数据合并成一行
- Android Studio正式版签名的时候出现:Android xxx is not translated in zh
- EasyUI—点击tab内容中的链接,在父级tab上新增一个tab
- Intent 调用系统图片库