我知道这将是非常具体的,如果对此主题有经验的人看到了这一点,我将很幸运,但是我已经没有耐心尝试寻找答案了,所以我想我可以看看是否社区中的任何人都知道。
我正在尝试构建一个PeopleCode生成的报告,该报告从临时表中读取数据并将其写入Excel电子表格。为此,我使用了一个名为“ PSSpreadsheet”的Oracle库。除了the PeopleBooks documentation外,几乎没有关于在线图书馆的信息。我的问题在于这两个函数:SetCellHeaderStyle()和SetColumnWidth()。
首先,SetCellHeaderStyle()具有以下参数:
我只有红色/蓝色/绿色值有问题。无论我设置为参数的数字组合(0到256),我将函数应用到的单元格都是灰色的,并且具有双线边框。这意味着如果我想使用此功能并更改其提供的任何格式,则必须处理这种奇怪的颜色/边框样式。
下一个函数SetColumnWidth()仅带有两个参数:
很简单,你不同意吗? 当我运行代码时(其中&SS是我的电子表格对象):
&SS.SetColumnWidth(1, 25);
&SS.SetColumnWidth(2, 25);
&SS.SetColumnWidth(3, 1);
&SS.SetColumnWidth(15, 1);
&SS.SetColumnWidth(27, 1);
这是要将A和B列的宽度设置为25;而C,O和AA列的宽度为1,则只是折叠列。因为在创建报告时它们的宽度均为0。
有人可以帮助您了解如何将这些格式设置功能应用于我的代码吗?我对这些东西有些不知所措,我不确定库是否很烂,或者我只是不理解它。
谢谢。
答案 0 :(得分:0)
对于Set Cell Header Style,我看到了相同的内容。
这似乎基于OPENXML。您可以将xlsx文件另存为.zip文件,然后查看电子表格中的内容。 [xl/styles.xml
等。
似乎color参数设置了字体颜色,尽管除了反复试验之外,我还没有弄清楚确切的数字对应于Excel中的什么颜色输入。
红色绿色蓝色值似乎没有设置任何内容?
fontheight
和fontname
似乎有用
“设置列宽”显然是基于0的,所以列A为0,B为1,
答案 1 :(得分:0)
有关颜色编号,请参见this link
SetCellHeaderStyle中的Color参数用于设置颜色 字体。这是一个索引颜色值,等同于Apache POI 库XSSFColor索引。要设置红色,我们需要传递值 等同于IndexedColors.RED.getIndex()。
我按如下方式使用JavaObject
Local JavaObject &xlColor = GetJavaClass("org.apache.poi.ss.usermodel.IndexedColors");
&ssObject.SetCellHeaderStyle(&iXLrow, 1, 255, 255, 0, 20, &xlColor.RED.getIndex(), 12, "Calibri");
有关不同的颜色,请参见this other link。
看起来boldWeight
什么也没做。
同样,如果我将SetCellHeaderStyle
设置为row
的电子表格来打开true
,则不适用于我。
&ssObject.Open(&strOutFileName, True);