Понимание того, как реализовать несколько функций Oracle Peoplesoft PSSpreadsheet
Я знаю, что это будет очень конкретным, и мне повезет, если кто-то, имеющий опыт в этой теме, увидит это, но у меня кончилось терпение, пытаясь найти ответы, поэтому я подумал, что я могу увидеть, если кто-то в сообщество знает.
Я пытаюсь создать отчет, созданный PeopleCode, который считывает данные из промежуточной таблицы и записывает их в электронную таблицу Excel. Для этого я использую библиотеку Oracle под названием "PSSpreadsheet". Кроме документации PeopleBooks, информация о библиотеке в Интернете практически отсутствует. Мои проблемы лежат с этими двумя функциями: SetCellHeaderStyle() и SetColumnWidth().
Прежде всего, SetCellHeaderStyle() принимает следующие параметры:
- ROWNUM / colnum
- redvalue
- bluevalue
- greenvalue
- boldweight
- цвет
- 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, когда я создаю отчет.
Может кто-нибудь помочь понять, как применить эти функции форматирования к моему коду? Я вроде как в этом сошел с ума и не уверен, отстой ли библиотека или просто не понимаю.
Заранее спасибо.
0 ответов
Для Set Cell Header Style я вижу то же самое.
Кажется, это основано на OPENXML. Вы можете сохранить файл xlsx в виде файла.zip и посмотреть, что находится в электронной таблице. [xl/styles.xml
и т. д.] Кажется, что параметр цвета устанавливает цвет шрифта, хотя я не выяснил, какое именно число соответствует какой записи цвета в Excel, кроме как методом проб и ошибок. Значения красного, зеленого, синего, похоже, ничего не устанавливают?fontheight
а также fontname
кажется, работает
Заданная ширина столбца, по-видимому, равна 0, поэтому столбец A равен 0, B равен 1,
Номер цвета см. По этой ссылке
Параметр Color в SetCellHeaderStyle используется для установки цвета шрифта. Это индексируемое значение цвета, эквивалентное индексу XSSFColor библиотеки Apache POI. Чтобы установить красный цвет, нам нужно передать значение, эквивалентное 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");
Смотрите эту другую ссылку для разных цветов.
Тоже похоже
boldWeight
ничего не делает.
Также не
SetCellHeaderStyle
работал только у меня, если я открывал электронную таблицу с
row
установлен в
true
.
&ssObject.Open(&strOutFileName, True);