как установить пользовательское значение в CellRangeAddress[]

#java #xml #apache-poi

Вопрос:

Можем ли мы добавить CellRangeAddress[] , Но используя его так :

 $P$32:$P$38,$P$43:$P$45,$P$50:$P$76,$P$81:$P$116,$P$121:$P$121,$P$126:$P$130
 

поэтому вместо того, чтобы придавать ему Такое значение, как это :

 CellRangeAddress[] my_data_range = new CellRangeAddress[]{CellRangeAddress.valueOf("P32:P130")};
 

у меня есть строка с одинаковым диапазоном , но с, между тиамами, поэтому ей нравится более одного диапазона.

Выходные данные Excel должны быть такими :

введите описание изображения здесь

Я открыл .zip-файл .xlsx-файла и посмотрел на Sheet.xml >>> мне нравится вот так :

 <conditionalFormatting sqref="P26 P45:P58 P28:P40 P63:P73 P78:P266">
    <cfRule type="iconSet" priority="89">
        <iconSet iconSet="3Flags">
            <cfvo type="num" val="$L$274" />
            <cfvo type="num" val="$L$274" />
            <cfvo type="num" val="$L$273" />
        </iconSet>
    </cfRule>
</conditionalFormatting>
 

он расположен в этой строке : sqref="P26 P45:P58 P28:P40 P63:P73 P78:P266">

но как мы можем сделать это на java ?

Ответ №1:

CellRangeAddress[] представляет собой массив CellRangeAddress es. Таким образом, нет необходимости устанавливать только один элемент массива. Также может быть несколько предметов.

   //CellRangeAddress[] my_data_range = new CellRangeAddress[]{CellRangeAddress.valueOf("P32:P130")};
  CellRangeAddress[] my_data_range = new CellRangeAddress[]{
      CellRangeAddress.valueOf("P32:P38"),
      CellRangeAddress.valueOf("P43:P45"),
      CellRangeAddress.valueOf("P50:P76"),
      CellRangeAddress.valueOf("P81:P116"),
      CellRangeAddress.valueOf("P121:P121"),
      CellRangeAddress.valueOf("P126:P130")      
  };
 

Комментарии:

1. -1 для добавления тега java, И я вообще хочу, чтобы код был на Java ! Аксель Рихтер Спасибо за правильный ответ И (шихабудхинк), пожалуйста. Плачь из-за очков !