跳槽到了新的公司,开始苦逼的出差现场开发,接触到了新的应用。有很多应用需要将Table导出成表格,可以把table导出成csv格式的文件。跟大伙分享一下;

  1. lass TableToExcle : public QDialog
  2. {
  3. Q_OBJECT
  4. public:
  5. TableToExcle(QWidget *parent = 0, Qt::WFlags flags = 0);
  6. ~TableToExcle();
  7. private:
  8. Ui::TableToExcleClass ui;
  9. private slots:
  10. void addRowSlot();
  11. void delRowSlot();
  12. void exportSlot();
  13. };
  1. TableToExcle::TableToExcle(QWidget *parent, Qt::WFlags flags)
  2. : QDialog(parent, flags)
  3. {
  4. ui.setupUi(this);
  5. ui.m_pTable->setColumnCount(4);
  6. QTableWidgetItem * item = new QTableWidgetItem("0");
  7. ui.m_pTable->setHorizontalHeaderItem ( 0, item );
  8. item = new QTableWidgetItem("1");
  9. ui.m_pTable->setHorizontalHeaderItem ( 1, item );
  10. item = new QTableWidgetItem("2");
  11. ui.m_pTable->setHorizontalHeaderItem ( 2, item );
  12. item = new QTableWidgetItem("3");
  13. ui.m_pTable->setHorizontalHeaderItem ( 3, item );
  14. ui.m_pTable->setSelectionBehavior(QAbstractItemView::SelectRows);
  15. connect(ui.m_pAddBtn,SIGNAL(clicked()),this,SLOT(addRowSlot()));
  16. connect(ui.m_pDelBtn,SIGNAL(clicked()),this,SLOT(delRowSlot()));
  17. connect(ui.m_pExportBtn,SIGNAL(clicked()),this,SLOT(exportSlot()));
  18. }
  19. TableToExcle::~TableToExcle()
  20. {
  21. }
  22. void TableToExcle::addRowSlot()
  23. {
  24. ui.m_pTable->insertRow(ui.m_pTable->rowCount());
  25. }
  26. void TableToExcle::delRowSlot()
  27. {
  28. int index = ui.m_pTable->currentRow ();
  29. if (index > -1)
  30. {
  31. ui.m_pTable->removeRow(index);
  32. }
  33. }
  34. void TableToExcle::exportSlot()
  35. {
  36. QString fileName = QFileDialog::getSaveFileName(this, tr("Save File")," ",tr("file (*.csv)"));
  37. if (!fileName.isEmpty())
  38. {
  39. QFile file(fileName);
  40. bool ret = file.open( QIODevice::Truncate | QIODevice::WriteOnly);
  41. if(!ret)
  42. return;
  43. QTextStream stream(&file);
  44. QString conTents;
  45. QHeaderView * header = ui.m_pTable->horizontalHeader() ;
  46. if (header)
  47. {
  48. for ( int i = 0; i < header->count(); i++ )
  49. {
  50. QTableWidgetItem *item = ui.m_pTable->horizontalHeaderItem(i);
  51. if (!item)
  52. {
  53. continue;
  54. }
  55. conTents += item->text() + ",";
  56. }
  57. conTents += "\n";
  58. }
  59. for ( int i = 0 ; i < ui.m_pTable->rowCount(); i++ )
  60. {
  61. for ( int j = 0; j < ui.m_pTable->columnCount(); j++ )
  62. {
  63. QTableWidgetItem* item = ui.m_pTable->item(i, j);
  64. if ( !item )
  65. continue;
  66. QString str = item->text();
  67. str.replace(","," ");
  68. conTents += str + ",";
  69. }
  70. conTents += "\n";
  71. }
  72. stream << conTents;
  73. file.close();
  74. }
  75. if( QMessageBox::Yes == QMessageBox::information(0,QObject::tr("文件导出"),QString("文件导出成功,是否打开该文件?"),QMessageBox::Yes,QMessageBox::No) )
  76. {
  77. QSettings settings("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Office",QSettings::NativeFormat);
  78. QString szDefault, szPath;
  79. bool bSuccess;
  80. szPath = settings.value("12.0/Excel/InstallRoot/Path").toString();
  81. if (szPath.isEmpty())
  82. szPath = settings.value("11.0/Excel/InstallRoot/Path").toString();
  83. if (szPath.isEmpty())
  84. szPath = settings.value("10.0/Excel/InstallRoot/Path").toString();
  85. if (szPath.isEmpty())
  86. szPath = settings.value("9.0/Excel/InstallRoot/Path").toString();
  87. if (szPath.isEmpty())
  88. szPath = settings.value("14.0/Excel/InstallRoot/Path").toString();
  89. if (szPath.isEmpty())
  90. {
  91. QMessageBox::information(0, "提示", "系统没有安装Office, 不能查看故障报告,请您先安装Microsoft Office.");
  92. return;
  93. }
  94. QProcess * proce = new QProcess;
  95. QString szExcelexe = szPath + "excel.exe";
  96. QString szopen = "/safe";
  97. QString szDoc = fileName;
  98. QStringList list;
  99. list<<szDoc;
  100. if( proce )
  101. {
  102. proce->start(szExcelexe,list);
  103. proce->waitForStarted(5000);        //需要等待完成启动
  104. }<pre name="code" class="cpp">               delete proce;

http://blog.csdn.net/hai200501019/article/details/37538591

QTableWidget 导出到csv表格的更多相关文章

  1. 实现数据导出为.csv表格

    数据导出实现步骤: 1.查找出要导出的数据,整理为二维数组. 2.定义导出表格的字段 3.将整理的二维数组按导出表格定义的字段重新整理. 4.将整理的二维数组写入服务器中已有的一个.csv文件. 5. ...

  2. csv表格处理(上)-- JS 与 PHP 协作导入导出

    CSV简介 在开发后台管理系统的时候,几乎无可避免的会遇到需要导入导出Excel表格的需求.csv也是表格的一种,其中文名为“逗号分隔符文件”.在Excel中打开如下图左边所示,在记事本打开如下图右边 ...

  3. QTableWidget 导出到表格

    跳槽到了新的公司.開始苦逼的出差现场开发.接触到了新的应用.有非常多应用须要将Table导出成表格,能够把table导出成csv格式的文件. 跟大伙分享一下: lass TableToExcle : ...

  4. csv表格处理(下)--纯JS解析导入csv

    多日前的上篇介绍了csv表格,以及JS结合后端PHP解析表格填充表单的方法.其中csv转换成二维数组的时候逻辑比较复杂多坑,幸好PHP有丰富的库函数来处理,而现在用JS解析的话就没有那么幸运了,一切都 ...

  5. PHP处理CSV表格文件的常用操作方法是怎么样呢

    php来说,fgetcsv读入csv表格,返回一个数组,然后foreach输出成HTML的<table>,这步操作几行代码就能实现,非常简单.工作量主要还在于浏览器前端,建议你用jQuer ...

  6. PHP 高效导入导出Excel(csv)方法之fgetcsv()和fputcsv()函数

    CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件. 一.CSV数据导入函数fgetcsv() fgetcsv() 函数从文件指针中读入一行并解析 CSV ...

  7. 十七 bootstrap-table tableExport 导出xlsx格式表格

    原文:十七 bootstrap-table tableExport 导出xlsx格式表格 在[十六.bootstrap-table javascript导出数据]中,打开导出的表格时,总会弹出一个提示 ...

  8. 将mysql数据库的数据导出做成excl表格通过邮件发送附件发给指定人

    mysql数据库的数据导出成excl表 方法一: mysql -uroot -p123456 -e “select *.* from 表 into outfile ‘文件路径.xls’into out ...

  9. CSV表格读取

    读取CSV表格需要CSV表格的编码格式为UTF-8 ,这个脚本中有些是为了方便使用封装的dll 不过都是一些简单的实现,自己实现也很容易,可做参考. /// <summary> /// 构 ...

随机推荐

  1. SQL执行效率总结

    1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询 ...

  2. Maven导入时,Cannot change version of project facet Dynamic Web Module to 3.0.

    今天手贱,在eclipse里面把项目删掉了,重新maven导入时,报出Cannot change version of project facet Dynamic Web Module to 3.0. ...

  3. SAP HANA 开发者中心(Developer Center)入门指南

  4. LINQ 图解

    LINQ 图解 原创地址:http://www.cnblogs.com/jfzhu/archive/2013/01/01/2841332.html 转载请注明出处 LINQ,语言集成查询(Langua ...

  5. PHP - 数组去重,(折中:符串去重)

    [译]更快的方式实现PHP数组去重 Jan 11, 2016 • Hector 原文:Faster Alternative to PHP’s Array Unique Function 概述 使用PH ...

  6. NOIP2015前

    时间过得好快...明天就要出发去NOIP了...然后再过半年就要省选了....希望自己能取得好成绩吧... NOIP2015 bless all !

  7. ThinkPHP第十天(_initialize方法,SESSION销毁,分组配置,include文件引入,JOIN用法)

    1.Action类中的_initialize()函数,先于任何自定义操作函数运行,可认为是控制器的前置操作.可用于检测用户是否登录等检测. 如果多个模块(Action)需要相同_initialize( ...

  8. python成长之路16

    阅读(72) 一:jQuery是一个兼容多浏览器的javascript类库,核心理念是write less,do more(写得更少,做得更多),对javascript进行了封装,是的更加便捷的开发, ...

  9. CQRS架构设计及其实现

    CQRS架构设计及其实现 一.为什么要实践领域驱动? 近一年时间我一直在思考一个问题:“如何设计一个松耦合.高伸缩性.易于维护的架构?”.之所以有这样的想法是因为我接触的不少项目都是以数据库脚本来实现 ...

  10. perl 安装Net::ZooKeeper

    <pre name="code" class="python"><pre name="code" class=" ...