关于Xlnt库:如何以RGB格式存储Excel单元格颜色信息?
提取并复用xlnt单元格填充颜色
提取单元格颜色
xlnt中可以直接通过单元格的fill()方法获取填充对象,判断为纯色填充后,提取其rgb_color对象——这个对象本身就是可存储的类型,无需额外函数。代码示例:
// 假设已初始化worksheet对象ws auto source_cell = ws.cell("A1"); xlnt::rgb_color stored_color; // 仅处理纯色填充的情况 if (source_cell.fill().type() == xlnt::fill_type::solid) { const auto& solid_fill = static_cast<const xlnt::solid_fill&>(source_cell.fill()); stored_color = solid_fill.color().rgb(); }
复用存储的颜色填充单元格
直接用保存的rgb_color对象创建纯色填充,赋值给目标单元格即可,和你之前的写法兼容:
// 目标单元格为B1 auto target_cell = ws.cell("B1"); target_cell.fill(xlnt::fill::solid(stored_color));
持久化存储(可选)
如果需要把颜色值保存到文件、数据库等外部存储,可提取rgb_color的r/g/b分量:
// 提取颜色分量 uint8_t r = stored_color.r(); uint8_t g = stored_color.g(); uint8_t b = stored_color.b(); // 后续重新构造颜色 xlnt::rgb_color restored_color(r, g, b);
内容的提问来源于stack exchange,提问作者matnow
相关产品推荐
相关产品推荐

