qt把qtableview中数据导出excel表中_AP博客: 如何在一张图上绘制多个测量数据集

bd25907675be36312c90a05da205caf6.png

通常,用户希望对一批设备进行测量,并将结果显示在一个图形上,以便进行比较。APx序列设计为一次显示一个设备的结果。如果电脑有microsoftexcel,下面是一个过程,您可以使用这个过程在同一个图形上获取多个设备数据集。

1. 在Navigator中,检查Pre-Sequence步骤中的Device ID提示符。这将提示您在每次运行序列时输入设备ID,如下所示。或者,可以在序列中的任何位置创建提示,并将用户输入的值存储到用户定义的变量中。在内部,将捕获输入的响应并将其分配给指定的变量。

4ed11a8976691319e512004600285846.png

图1: 提示窗口设备ID

2. 对于感兴趣的测量和结果,创建一个序列步骤以将结果数据导出到Excel文件。使用与图形不同的数据规范,以确保为每个数据集导出相同的X轴值。如果文件存在,请选择追加,但不要只检查Y数据。选中Insert Variable in Header复选框,并指定DeviceId变量(或者您的用户定义变量,如果您在步骤1中使用的话)

ff3da452129dad4c5fe973da507d5ce7.png

图2:上面的例子导出了频率响应的增益结果。

3. 为每个要测试的设备运行序列。这将在每次运行序列时将数据集作为一对额外的X和Y列附加到Excel文件中的同一工作表中。

4. 测量完成后, 在Excel中打开导出数据文件。
在APx中,您不能将这些数据导入到单个结果图中,但是通过稍微编辑它,您可以使用APx的Define newresult特性在一个图上绘制所有数据集

cf98056998a3bfa5a2879288a75da21b.png

图3:上面的屏幕截图显示了使用频率响应从6个增益测量创建的文件。

5. 以下是所需的编辑:

a. 如果您愿意,请更改单元格A1中的标题。
b. 从顶行剪切DeviceId值(在本例中为EQ1、EQ2等)…。EQ6)并将其粘贴在频道标签(Ch1,Ch2…。。Ch6)在第2排。
c. 编辑标题和行3。这将是X轴和Y轴的标题。所以在我们的例子中,X改变为频率,Y改变为增益。
d.将文件保存在原始文件之上,或者根据需要保存为新文件。

daba7d85693b4533f37646fa0f024479.png

图4。此示例文件的编辑版本如上图所示。

6.  在APx软件中,右键单击任何测量并选择定义新结果–(X,Y)。

单击图形下方标记为“数据…”的按钮,然后使用“文件控制”通过浏览或使用变量来选择刚刚在步骤5中编辑的文件。默认情况下,图形将有一个线性X轴,但如果需要,您可以在之后将其更改为对数。这将在一个图形上绘制所有数据集,如下所示。请注意,为每次运行输入的设备ID字符串显示在图形图例中,以帮助识别数据集。

97fef393858cbce543958117a77bed5e.png

5cbdcb38f62bf59e755396f1bc07f106.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码: ```cpp #include <QApplication> #include <QTableView> #include <QStandardItemModel> #include <QFile> #include <QTextStream> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 创建一个QTableView控件和一个QStandardItemModel模型 QTableView tableView; QStandardItemModel model(4, 3); model.setHorizontalHeaderLabels({"Name", "Age", "Gender"}); tableView.setModel(&model); // 添加数据到模型 model.setData(model.index(0, 0), "Alice"); model.setData(model.index(0, 1), 25); model.setData(model.index(0, 2), "Female"); model.setData(model.index(1, 0), "Bob"); model.setData(model.index(1, 1), 30); model.setData(model.index(1, 2), "Male"); model.setData(model.index(2, 0), "Charlie"); model.setData(model.index(2, 1), 20); model.setData(model.index(2, 2), "Male"); model.setData(model.index(3, 0), "Dave"); model.setData(model.index(3, 1), 35); model.setData(model.index(3, 2), "Male"); // 导出数据到文本文件 QFile file("table_data.txt"); if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream out(&file); // 输出表头 QStringList headerList; for (int i = 0; i < model.columnCount(); i++) { headerList << model.headerData(i, Qt::Horizontal).toString(); } out << headerList.join('\t') << '\n'; // 输出数据 for (int row = 0; row < model.rowCount(); row++) { QStringList rowList; for (int column = 0; column < model.columnCount(); column++) { QModelIndex index = model.index(row, column); rowList << model.data(index).toString(); } out << rowList.join('\t') << '\n'; } file.close(); } tableView.show(); return a.exec(); } ``` 这个示例程序创建了一个4行3列的表格,并将数据导出到名为"table_data.txt"的文本文件。在导出过程,首先输出表头,然后逐行输出数据。每一行的数据用制表符分隔,行末以换行符结束。 你可以根据自己的实际需求对代码进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值