小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

利用QXlsx繪制各類數(shù)據(jù)圖表

 翟天保的圖書館 2024-12-02 發(fā)布于上海

作者:翟天保Steven
版權(quán)聲明:著作權(quán)歸作者所有,商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處

為什么要繪制數(shù)據(jù)圖表?

? ? ? ?在當今這個信息爆炸的時代,數(shù)據(jù)無處不在,無論是企業(yè)的運營管理、科研項目的開展,還是市場趨勢的分析等等,都伴隨著海量的數(shù)據(jù)產(chǎn)生。然而,這些原始的數(shù)據(jù)往往是繁雜且無序的,就像一堆未經(jīng)雕琢的璞玉,很難讓人一眼洞察其中蘊含的關(guān)鍵信息和規(guī)律。

? ? ? ?而數(shù)據(jù)圖表化就如同一位神奇的工匠,能將這些原始數(shù)據(jù)進行巧妙的加工轉(zhuǎn)化。通過把數(shù)據(jù)以圖表的形式呈現(xiàn)出來,比如用柱狀圖清晰展示不同項目間的數(shù)據(jù)對比情況,折線圖直觀反映數(shù)據(jù)隨時間的變化趨勢,餅圖精準呈現(xiàn)各部分占總體的比例關(guān)系等。它可以極大地提升我們對數(shù)據(jù)的理解效率,讓我們能夠快速抓取重點,發(fā)現(xiàn)數(shù)據(jù)背后隱藏的邏輯、關(guān)聯(lián)以及發(fā)展態(tài)勢??梢哉f,數(shù)據(jù)圖表化是我們在數(shù)據(jù)的海洋里航行時的燈塔,為我們照亮通往深入分析、精準決策的道路,其重要性不言而喻,也正因如此,掌握高效繪制數(shù)據(jù)圖表的工具和方法就顯得尤為關(guān)鍵。

? ? ? QXlsx 就是這樣一款得力的工具,接下來讓我們學習如何使用它來繪制數(shù)據(jù)圖表。

QXlsx下載與配置

? ? ? ?參考文章:QXlsx下載與配置:助力辦公自動化的第一步-CSDN博客

圖表繪制實現(xiàn)

1)繪制二維餅圖。在Excel第四行第四列(3表示第4,計數(shù)從0開始),將數(shù)據(jù)A1到A9以二維餅圖形式繪制,尺寸為300*300。

// 繪制二維餅圖
Chart *pieChart = xlsx.insertChart(3, 3, QSize(300, 300));
pieChart->setChartType(Chart::CT_PieChart);
pieChart->addSeries(CellRange("A1:A9"));

2)繪制三維餅圖。在Excel第四行第十列,將數(shù)據(jù)C1到C9以三維餅圖形式繪制,尺寸為300*300。

// 繪制三維餅圖
Chart *pie3DChart = xlsx.insertChart(3, 9, QSize(300, 300));
pie3DChart->setChartType(Chart::CT_Pie3DChart);
pie3DChart->addSeries(CellRange("C1:C9"));

3)繪制二維條狀圖。將數(shù)據(jù)A1到C9以二維條狀圖形式繪制,尺寸為300*300,其中A1到A9為一組數(shù)據(jù),B1到B9為一組,C1到C9為一組,自動劃分為三組。

// 繪制二維條狀圖
Chart *barChart = xlsx.insertChart(23, 3, QSize(300, 300));
barChart->setChartType(Chart::CT_BarChart);
barChart->addSeries(CellRange("A1:C9"));

4)繪制三維條狀圖。

// 繪制三維條狀圖
Chart *bar3DChart = xlsx.insertChart(23, 9, QSize(300, 300));
bar3DChart->setChartType(Chart::CT_Bar3DChart);
bar3DChart->addSeries(CellRange("A1:C9"));

5)繪制二維折線圖。

// 繪制二維折線圖
Chart *lineChart = xlsx.insertChart(43, 3, QSize(300, 300));
lineChart->setChartType(Chart::CT_LineChart);
lineChart->addSeries(CellRange("A1:C9"));

6)繪制三維折線圖。

// 繪制三維折線圖
Chart *line3DChart = xlsx.insertChart(43, 9, QSize(300, 300));
line3DChart->setChartType(Chart::CT_Line3DChart);
line3DChart->addSeries(CellRange("A1:C9"));

7)繪制二維面積圖。

// 繪制二維面積圖
Chart *areaChart = xlsx.insertChart(63, 3, QSize(300, 300));
areaChart->setChartType(Chart::CT_AreaChart);
areaChart->addSeries(CellRange("A1:C9"));

8)繪制三維面積圖。

// 繪制三維面積圖
Chart *area3DChart = xlsx.insertChart(63, 9, QSize(300, 300));
area3DChart->setChartType(Chart::CT_Area3DChart);
area3DChart->addSeries(CellRange("A1:C9"));

9)繪制散點圖。

// 繪制散點圖(注意這里如果用A1:C9,則只會顯示B1:C9的數(shù)據(jù))
Chart *scatterChart = xlsx.insertChart(83, 3, QSize(300, 300));
scatterChart->setChartType(Chart::CT_ScatterChart);
scatterChart->addSeries(CellRange("A1:A9"));
scatterChart->addSeries(CellRange("B1:B9"));
scatterChart->addSeries(CellRange("C1:C9"));

10)繪制圓環(huán)圖。

// 繪制圓環(huán)圖
Chart *doughnutChart = xlsx.insertChart(83, 9, QSize(300, 300));
doughnutChart->setChartType(Chart::CT_DoughnutChart);
doughnutChart->addSeries(CellRange("A1:C9"));

完整代碼

? ? ? ?main.cpp如下所示。

#include "mainwindow.h"
#include "xlsxdocument.h"
#include "xlsxformat.h"
#include "xlsxcellrange.h"
#include "xlsxchart.h"
#include <QApplication>

using namespace QXlsx;

int main()
{
    // 插入數(shù)據(jù)
    Document xlsx;
    for (int i = 1; i < 10; ++i) {
        xlsx.write(i, 1, i);         // A1:A9 線性
        xlsx.write(i, 2, i * i);     // B1:B9 次方
        xlsx.write(i, 3, i * i * i); // C1:C9 立方
    }

    // 繪制二維餅圖
    Chart *pieChart = xlsx.insertChart(3, 3, QSize(300, 300));
    pieChart->setChartType(Chart::CT_PieChart);
    pieChart->addSeries(CellRange("A1:A9"));

    // 繪制三維餅圖
    Chart *pie3DChart = xlsx.insertChart(3, 9, QSize(300, 300));
    pie3DChart->setChartType(Chart::CT_Pie3DChart);
    pie3DChart->addSeries(CellRange("C1:C9"));

    // 繪制二維條狀圖
    Chart *barChart = xlsx.insertChart(23, 3, QSize(300, 300));
    barChart->setChartType(Chart::CT_BarChart);
    barChart->addSeries(CellRange("A1:C9"));

    // 繪制三維條狀圖
    Chart *bar3DChart = xlsx.insertChart(23, 9, QSize(300, 300));
    bar3DChart->setChartType(Chart::CT_Bar3DChart);
    bar3DChart->addSeries(CellRange("A1:C9"));

    // 繪制二維折線圖
    Chart *lineChart = xlsx.insertChart(43, 3, QSize(300, 300));
    lineChart->setChartType(Chart::CT_LineChart);
    lineChart->addSeries(CellRange("A1:C9"));

    // 繪制三維折線圖
    Chart *line3DChart = xlsx.insertChart(43, 9, QSize(300, 300));
    line3DChart->setChartType(Chart::CT_Line3DChart);
    line3DChart->addSeries(CellRange("A1:C9"));

    // 繪制二維面積圖
    Chart *areaChart = xlsx.insertChart(63, 3, QSize(300, 300));
    areaChart->setChartType(Chart::CT_AreaChart);
    areaChart->addSeries(CellRange("A1:C9"));

    // 繪制三維面積圖
    Chart *area3DChart = xlsx.insertChart(63, 9, QSize(300, 300));
    area3DChart->setChartType(Chart::CT_Area3DChart);
    area3DChart->addSeries(CellRange("A1:C9"));

    // 繪制散點圖(注意這里如果用A1:C9,則只會顯示B1:C9的數(shù)據(jù))
    Chart *scatterChart = xlsx.insertChart(83, 3, QSize(300, 300));
    scatterChart->setChartType(Chart::CT_ScatterChart);
    scatterChart->addSeries(CellRange("A1:A9"));
    scatterChart->addSeries(CellRange("B1:B9"));
    scatterChart->addSeries(CellRange("C1:C9"));

    // 繪制圓環(huán)圖
    Chart *doughnutChart = xlsx.insertChart(83, 9, QSize(300, 300));
    doughnutChart->setChartType(Chart::CT_DoughnutChart);
    doughnutChart->addSeries(CellRange("A1:C9"));

    // 保存文件
    xlsx.saveAs("chart1.xlsx");

    return 0;
}

效果展示

? ? ? ?注意生成的xlsx文件要用Excel打開,用WPS打開的話,三維圖表可能還是二維樣式。

? ? ? ?如果文章幫助到你了,可以點個贊讓我知道,我會很快樂~加油!

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多