Как создать гиперссылку на фильтр на другом листе, используя Apache poi в Java? - PullRequest
1 голос
/ 18 июля 2011

Я хочу создать гиперссылку из поля «Имя» на Листе 1 («Сводка») на автофильтр в столбце «Имя» на Листе 2 («Сведения»), чтобы отображать сведения об этом конкретном имени только на Листе 2.

Я импортировал:

import org.apache.poi.ss.usermodel.Hyperlink;
import org.apache.poi.ss.usermodel.CreationHelper;

Гиперссылка для фильтрации на другом листе.

Я сделал это с помощью макроса VB, но хочу реализовать это с помощью Java POI.

Ответы [ 3 ]

1 голос
/ 19 августа 2011

Чтобы вставить гиперссылку в ячейку на листе Excel с помощью Apache POI, нам нужен CreationHelper, нам нужно получить CreationHelper из WorkBook (например, XSSFWorkBook). Фрагмент кода:

CreationHelper creationHelper = getWorkbook().getCreationHelper();
Hyperlink link = creationHelper.createHyperlink(Hyperlink.LINK_URL);
link.setAddress("www.google.com");

В Apache POI доступны другие типы HyperLink, одним из которых является LINK_URL. также мы можем применить стиль к гиперссылке, созданной по умолчанию, она будет синей и подчеркнутой.

XSSFCellStyle hLinkStyle = getWorkbook().createCellStyle();
Font hLinkFont = getWorkbook().createFont();
hLinkFont.setFontName("Ariel");
hLinkFont.setUnderline(Font.U_SINGLE);
hLinkFont.setColor(IndexedColors.BLUE.getIndex() );
hLinkStyle.setFont(hLinkFont);
1 голос
/ 19 июля 2011

У меня были проблемы с гиперссылками некоторое время назад, и самый быстрый способ сделать это (я тоже спешил!) Заключается в следующем:

row.createCell(cellIdx, HSSFCell.CELL_TYPE_FORMULA).setCellFormula(String.format("HYPERLINK(%s; \"%s\")", sheetAndCellLocation, friendlyText));
0 голосов
/ 14 августа 2011

Не поддерживается с JAVA POI - пока я не нашел ..

...