了解如何实现一些Oracle Peoplesoft PSSpreadsheet函数

时间:2018-06-28 19:49:04

标签: peoplesoft peoplesoft-app-engine peoplecode

我知道这将是非常具体的,如果对此主题有经验的人看到了这一点,我将很幸运,但是我已经没有耐心尝试寻找答案了,所以我想我可以看看是否社区中的任何人都知道。

我正在尝试构建一个PeopleCode生成的报告,该报告从临时表中读取数据并将其写入Excel电子表格。为此,我使用了一个名为“ PSSpreadsheet”的Oracle库。除了the PeopleBooks documentation外,几乎没有关于在线图书馆的信息。我的问题在于这两个函数:SetCellHeaderStyle()和SetColumnWidth()。

首先,SetCellHeaderStyle()具有以下参数:

  • 行号/列号
  • redvalue
  • bluevalue
  • 绿色价值
  • 粗体
  • 颜色
  • fontheight
  • 字体名

我只有红色/蓝色/绿色值有问题。无论我设置为参数的数字组合(0到256),我将函数应用到的单元格都是灰色的,并且具有双线边框。这意味着如果我想使用此功能并更改其提供的任何格式,则必须处理这种奇怪的颜色/边框样式。

下一个函数SetColumnWidth()仅带有两个参数:

  • colnum
  • 宽度

很简单,你不同意吗? 当我运行代码时(其中&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。

有人可以帮助您了解如何将这些格式设置功能应用于我的代码吗?我对这些东西有些不知所措,我不确定库是否很烂,或者我只是不理解它。

谢谢。

2 个答案:

答案 0 :(得分:0)

对于Set Cell Header Style,我看到了相同的内容。

这似乎基于OPENXML。您可以将xlsx文件另存为.zip文件,然后查看电子表格中的内容。 [xl/styles.xml等。 似乎color参数设置了字体颜色,尽管除了反复试验之外,我还没有弄清楚确切的数字对应于Excel中的什么颜色输入。 红色绿色蓝色值似乎没有设置任何内容? fontheightfontname似乎有用

“设置列宽”显然是基于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);