Здесь я перезаписываю 1-ю гиперссылку с 2-й гиперссылкой в той же ячейке, а метод get.hyperlink()
всегда вытягивает гиперссылку, которая была впервые записана в ячейке.
Любая помощь вокруг этого была бы великолепна !!Заранее спасибо
Ниже приведен мой код и вывод:
public static void main(String[] args) {
ExcelUtils2.writeHyperLink("DashboardCopy", 1, 1, "test1", "https://google.com");
ExcelUtils2.writeHyperLink("DashboardCopy", 1, 1, "test2", "https://facebook.com");
String dtr = ExcelUtils2.getCellHyperlink(1, 1);
System.out.println("Hyperlink of the cell is >> " + dtr);
}
public static synchronized void writeHyperLink(String workBookName, int irow, int icol, String ivalue, String iUrl)
throws InvalidFormatException, IOException {
FileInputStream excelFile = new FileInputStream(excelSource);
excelWBook = new XSSFWorkbook(excelFile);
excelWSheet = excelWBook.getSheet(workBookName);
createHelper = excelWBook.getCreationHelper();
XSSFRow row = excelWSheet.getRow(irow);
XSSFCell cell = row.createCell(icol);
cell.setCellValue(ivalue);
XSSFHyperlink link = (XSSFHyperlink) createHelper.createHyperlink(HyperlinkType.URL);
link.setAddress(iUrl);
cell.setHyperlink(link);
FileOutputStream fos = new FileOutputStream(excelSource);
excelWBook.write(fos);
fos.close();
}
public static String getCellHyperlink(int rowNum, int colNum) throws Exception {
FileInputStream excelFile = new FileInputStream(excelSource);
excelWBook = new XSSFWorkbook(excelFile);
excelWSheet = excelWBook.getSheet("DashboardCopy");
XSSFRow row = excelWSheet.getRow(rowNum);
XSSFCell cell = row.getCell(colNum);
XSSFHyperlink link = cell.getHyperlink();
String cellData = link.getAddress();
// System.out.println(link.getAddress());
return cellData;
}
Вывод: Гиперссылка ячейки >> >> 1009 *https://google.com
Ожидаемый вывод: Должен напечатать https://facebook.com