【问题标题】:Is there any way to change the font size for Chart title, Legend and the data label?有没有办法改变图表标题、图例和数据标签的字体大小?
【发布时间】:2020-05-08 08:21:34
【问题描述】:

有没有办法改变图表标题、图例和数据标签的字体大小?

面临的问题是我们的团队正在使用库“phpspreadsheet”(link to library github) 生成一些带有图表的excel文件,并找出图表标题的字体大小,数据图例和数据标签太小。

(请参阅随附的屏幕截图。)

The screenshot for the report

我已经从库中搜索了文档和示例,但似乎没有提到如何更改它。

如果有任何建议,谢谢大家。

【问题讨论】:

  • 是的,我应该修改问题更清楚:) 谢谢
  • 根据我在项目中看到的内容,我创建了一个新的Chart() 类,它接受Title() 类作为第二个参数,该类具有第二个参数Layout() 类。但是我在布局上找不到任何额外的配置,所以我最好的猜测是库不支持它。
  • 很遗憾,我可以知道是否有任何替代方法可以生成/修改带有图表的 excel 文件以对其他两件事进行样式设置?感谢大家的帮助:)
  • 如果您使用Xlsx() writer,您可以创建自己的 writer 并使用它。可悲的是有一些私有属性,所以它可能不适用于扩展。但是文件的部分生成是使用 XML 代码完成的,因此如果您有时间,可能很容易添加必要的标签来格式化和自定义。

标签: php phpspreadsheet


【解决方案1】:

问题是,XLSX 文件是压缩的 XML 文件。

PhpSpreadsheet 的作用是使用预制的 XML 模板来填充您希望在 XLSX 上看到的数据,然后压缩所有内容,并将其命名为 XLSX。

如果你想改变字体大小,那么你必须在使用的模板中找到正确的位置。幸运的是,PhpSpreadsheet 在phpoffice\phpspreadsheet\samples\Chart 文件夹中提供了很多示例。如果您执行32_Chart_read_write.php,它将从每个模板创建一个文件并为您提供路径。

模板位于:phpoffice\phpspreadsheet\samples\templates

如果你解压它,你会看到 3 个文件夹,里面都是 XML 文件。负责样式的最有可能是xl\styles.xml 文件。大小应该在一个标签中,它也是一个名称为sz 的标签。例如:

<sz val="23.5"/>

您可以在此处修改字体大小,然后将其压缩回 XLSX 并将其保存在您想要的任何位置并按照示例中提供的方式使用它。

【讨论】:

  • 谢谢 :) 我会尝试比较解压缩的 excel 文件夹,看看哪些文件发生了变化。
  • 谁可能感兴趣,图表的样式存储在图表相关的xml文件中。请找到标签&lt;c:legendEntry&gt; 用于图例,并找到标签&lt;c:txPr&gt; 用于标签
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多