xlnt库哪个版本才支持使用图表,并且在c++下如何使用图表功能,如何通过单元格中的数据生成散点图?
时间: 2024-03-14 21:48:06 浏览: 49
xlnt库从版本1.5.0开始支持图表功能。在C++下使用图表功能需要使用xlnt::chart命名空间中的类和函数。下面是一个简单的示例代码:
```c++
#include <xlnt/xlnt.hpp>
#include <iostream>
int main()
{
// 创建一个新的工作簿
xlnt::workbook wb;
// 创建一个新的工作表
auto ws = wb.active_sheet();
ws.title("Scatter Plot");
// 设置单元格中的数据
ws.cell("A1").value(1);
ws.cell("B1").value(2);
ws.cell("A2").value(3);
ws.cell("B2").value(4);
ws.cell("A3").value(5);
ws.cell("B3").value(6);
// 添加散点图
auto chart = ws.add_chart(xlnt::chart_type::scatter_markers, "D1");
// 设置散点图的标题和数据源
chart.title("Scatter Plot");
chart.add_series(xlnt::range_reference("A1:A3"), xlnt::range_reference("B1:B3"));
// 保存工作簿
wb.save("scatter_plot.xlsx");
std::cout << "Scatter plot created!" << std::endl;
return 0;
}
```
这个示例代码创建了一个新的工作簿和工作表,并在单元格中设置了数据。然后,它添加了一个散点图并设置了散点图的标题和数据源。最后,它保存了工作簿并输出一条消息。
在这个示例代码中,数据是手动设置的。如果要使用单元格中的数据生成散点图,可以使用xlnt::range_reference类来指定数据源。例如,如果要使用第一个工作表中的单元格A1到B3中的数据生成散点图,可以使用以下代码:
```c++
chart.add_series(xlnt::range_reference("Sheet1!A1:A3"), xlnt::range_reference("Sheet1!B1:B3"));
```
注意,这个代码假设第一个工作表的名称是“Sheet1”。如果工作表的名称不同,需要相应地更改名称。
阅读全文