qt5 读取excel画图 代码
时间: 2024-01-17 07:04:08 浏览: 27
以下是使用 Qt5 读取 Excel 文件并绘制图形的代码示例:
```cpp
#include <QApplication>
#include <QtCharts>
#include <QFile>
#include <QTextStream>
#include <QVector>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 读取 Excel 文件
QFile file("data.xlsx");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "Error: cannot open file!";
return -1;
}
QTextStream in(&file);
QVector<double> xData, yData;
while (!in.atEnd()) {
QString line = in.readLine();
QStringList fields = line.split(",", QString::SkipEmptyParts);
if (fields.count() < 2) {
qDebug() << "Error: invalid file format!";
return -1;
}
xData.append(fields[0].toDouble());
yData.append(fields[1].toDouble());
}
// 创建图表和序列
QChart *chart = new QChart();
chart->setTitle("Data Chart");
QLineSeries *series = new QLineSeries();
chart->addSeries(series);
// 设置坐标轴
QValueAxis *axisX = new QValueAxis();
QValueAxis *axisY = new QValueAxis();
axisX->setTitleText("X Axis");
axisY->setTitleText("Y Axis");
chart->addAxis(axisX, Qt::AlignBottom);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisX);
series->attachAxis(axisY);
// 添加数据
for (int i = 0; i < xData.size(); i++) {
series->append(xData[i], yData[i]);
}
// 创建视图并显示
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
chartView->resize(800, 600);
chartView->show();
return app.exec();
}
```
其中,`data.xlsx` 文件中的数据格式为:
```
x1,y1
x2,y2
x3,y3
...
```
需要注意的是,本示例使用了 Qt Charts 模块,需要在项目文件中添加以下代码:
```
QT += charts
```