Tag: qt的

如何用QAxObject捕获/抛出错误

我想使用QAxObject来处理Excel文件。 我想实现一些初始化,如下面的代码: QAxObject* excel;//excel pointer void initExcel(){ try { //if there excel process already running try to use it } //catch if it's not running catch() { try { excel = new QAxObject("Excel.Application"); } catch { //meassge if excel not exist/can't start } } } 我怎么能捕捉/抛出QAxObject的错误? 我试图谷歌,但没有发现任何exapmlpe

如何从Qt应用程序驱动Excel窗口

在我的Qt应用程序中,我有一个窗口,其中一个表使用来自后端服务器的数据dynamic更新。 我需要我的窗口能够打开一个Excel实例,将表中的所有数据插入Excel窗口,并更新Excel表格中的数据更新时的Excel单元格。 这是可能实现的吗? 如果是这样,我怎么能做到这一点? 我不介意只能在Windows上运行的依赖于平台的解决scheme。

Excel与Qt:find最后一个填充行数

我已经在Qt中打开excel工作表,并试图获得行数和列填充(如果所有填充连续)与此代码: QString file = QFileDialog::getOpenFileName(this,"Open file"); QAxWidget excel("Excel.Application"); excel.setProperty("Visible", true); QAxObject * workbooks = excel.querySubObject("WorkBooks"); QAxObject* workbook = workbooks->querySubObject( "Open(const QString&)", file ); sheets = workbook->querySubObject( "Worksheets" ); QAxObject* sheet = sheets->querySubObject( "Item( int )", i ); QAxObject* rows = sheet->querySubObject( "Rows" ); int rowCount = rows->dynamicCall( "Count()" ).toInt(); QAxObject* columns = sheet->querySubObject( "Columns" ); […]

如何使用QtActive设置单元格中的值

我正试图通过QtActive的QAxObject将值放入Excel表格中。 我成功地获得了工作表。 现在win32 API设置单元格的值是 Some_Excel_Object xx=worksheet->Cells(); xx->item[row][column] = 5; 在这里,我得到了“XX”。 但是,我不知道如何实现上面的第二行。 我将非常感谢在这个问题上发表意见的人。

如何通过Qt设置excel列格式?

我想写一些电话号码为Excel文件,其中一些从0开始(如02167820096)。 我尝试将该列的NumberFormatLocal属性设置为stringtypes: QAxObject* col=worksheet->querySubObject("Columns(int)",1); if (!col) { qDebug()<<"col is NULL"; } qDebug()<<"col 1 NumberFormatLocal:"<<col->property("NumberFormatLocal").toString(); col->setProperty("NumberFormatLocal","@"); qDebug()<<"col 1 NumberFormatLocal:"<<col->property("NumberFormatLocal").toString(); 输出是 col 1 NumberFormatLocal: "G/通用格式" col 1 NumberFormatLocal: "@" 我可以看到第一列中的单元格确实设置为stringtypes(“@”)。 QAxObject * range = worksheet->querySubObject("Cells(int,int)", 1, 1); if (!range) { qDebug()<<"range does not exist"; } QVariant tel=QString("%1").arg(record["tel"].toString()); //tel is 02167820096 //qDebug()<<tel; //range->dynamicCall("SetValue(const QVariant&)", tel); qDebug()<<"NumberFormatLocal:"<<range->property("NumberFormatLocal").toString(); qDebug()<<"NumberFormat:"<<range->property("NumberFormat").toString(); range->setProperty("Value", […]

以编程方式编辑xlsx XML会导致它损坏

所以我在Qt 5.6中创build一个Qt程序,读取和写入Excel文件(使用Qt Xlsx 0.3)。 有一个我想编辑的drawing.xml文件,所以我使用QDomDocument来做到这一点。 我只改变一件事,从: <a:p> <a:pPr rtl="0"/> <a:r> <a:rPr b="0" baseline="0" i="0" lang="en-GB" sz="1100"> <a:effectLst/> <a:latin typeface="+mn-lt"/> <a:ea typeface="+mn-ea"/> <a:cs typeface="+mn-cs"/> </a:rPr> <a:t>J1: 0 </a:t> </a:r> </a:p> 对此: <a:p> <a:pPr rtl="0"/> <a:r> <a:rPr b="0" baseline="0" i="0" lang="en-GB" sz="1100"> <a:effectLst/> <a:latin typeface="+mn-lt"/> <a:ea typeface="+mn-ea"/> <a:cs typeface="+mn-cs"/> </a:rPr> <a:t>TESTING</a:t> </a:r> </a:p> 我把它放回到graphics文件夹并压缩了xlsx文件,但是当我打开xlsx文件时,graphics已经损坏,并且被删除。 所以我使用了一个diffchecker来确保这些xml文件中的其他内容都是相同的,并且注意到Qt也对它进行了一些修改。 从: <?xml […]

QTvariables数据types的优雅解决scheme

起初我加载一个.xls或.xlsx文件。 问题是:有两个不同的类来处理它们,我不确定在每个函数调用之前,如果没有执行if-else,该怎么办。 我的控制器的一些成员函数可以很容易地通过为每个类(不同的参数types)定义两次来解决。 所以我的问题很大程度上是,如果有一个更好的方法调用类成员函数没有与控制器的解决方法,有两个方法被调用取决于数据types。 意思是我有xlsx类和xls类和一个处理程序,其中每个函数是两个数据types的两倍。

Qt和PyQt tablewidget越来越多的行数

我正在学习Python,并试图编写一个程序来帮助我的父亲。 我希望它是excel的样子,现在看起来不错,但我不知道如何使tableWidget中的行数(而不是列)增长,而某些人滚动下来…我可以使用它QtDesigner或我必须在.py文件中写入代码? 任何帮助表示赞赏…对不起,如果我问愚蠢的问题,我真的是一个小白…

QAxObject Excel工作表 – 为整个Excel工作表设置默认字体

我可以设置单个单元格的大小和字体。 QAxObject *range = excelSheet->querySubObject("Cells(int,int)", row, col); range = range->querySubObject("Font"); range->setProperty("Size", 10); range->setProperty("Name", "Arial"); 我如何更改字体的default大小和完整的Excel表单的types?

c ++ qt API与Excel 2010一起使用,但不与ecxel 2013一起使用

API QT C ++到Excel有问题。 从QT我打开一个Excel工作簿,添加3个选项卡,命名这些3个选项卡,填写值到所有选项卡,保存工作簿与一个新名称(另存为)。 我的代码与Excel 2010完美协作。但是,当我运行程序(使用Excel 2013)时,它崩溃了。 有人知道为什么吗? Excel打开,显示3个选项卡(未命名),然后崩溃。 看来Programm在执行这一行之前停止 QAxObject *sheet1 = sheets->querySubObject( "Item( int )", 1 ); 我的代码: QAxObject* excel = new QAxObject( "Excel.Application", 0 ); excel->dynamicCall("SetVisible(bool)",true); QAxObject *workbooks = excel->querySubObject( "Workbooks" ); QAxObject *workbook = workbooks->querySubObject("Add()"); QAxObject *sheets = workbook->querySubObject( "Worksheets" ); QAxObject *sheet1 = sheets->querySubObject( "Item( int )", 1 ); […]