Как создать гиперссылку в электронной таблице с помощью Java?

Опубликовано: 9 Сентября, 2022

Apache POI — это популярный API, который позволяет программистам создавать, изменять и отображать файлы MS Office с помощью программ Java. Это библиотека с открытым исходным кодом, разработанная и распространяемая Apache Software Foundation для проектирования или изменения файлов Microsoft Office с использованием программ Java. Он содержит классы и методы для декодирования вводимых пользователем данных или файла в документы MS Office.

Apache POI позволяет нам создавать гиперссылки в электронных таблицах. Полезно установить веб-адрес в ячейке и перенаправить его на сервер при нажатии.

Подход:

  • Импортируйте все необходимые файлы .jar, такие как XSSF, XML, а также вы можете добавить зависимость Maven в проект maven как:
   <dependency>  
       <groupId>org.apache.poi</groupId>  
       <artifactId>poi</artifactId>  
       <version>3.9</version>  
   </dependency>
  • Создание экземпляра книги
  • Создайте электронную таблицу в указанной выше рабочей книге.
  • Создание строк с помощью XSSFrow
  • Создайте ячейку с помощью XSSFCell.
  • Установите гиперссылку вместе со значением ячейки. значения ячеек.
  • Запись содержимого в книгу путем определения объекта типа FileOutputStream.
  • Закройте соединение файла.

Процедура:

  1. Создайте проект Maven в eclipse и добавьте Apache POI (используется для установки типа значения ячеек), а также импортируйте все необходимые файлы .jar, такие как HSSF, XML.
  2. Дайте имя рабочей тетради.
  3. Создайте рабочую книгу, используя «new XSSFWorkbook ()», в которой мы должны создать электронную таблицу.
  4. Создайте электронную таблицу в рабочей книге, используя «workbook.createSheet('Sheet1')», а также дайте листу имя «Sheet1».
  5. Создайте строку с помощью XSSFRow. Строки основаны на 0.
  6. Создайте ячейку с помощью XSSFCell.
  7. Установите гиперссылку, используя cell.setCellFormula(), а также установите значение для ячейки, используя cell.setCellValue();
  8. Поместите выходной файл в расположение по умолчанию, а также сохраните его в блоке try-catch с помощью FileOutputStream().
  9. Запишите его в рабочую книгу, созданную на начальном этапе, с помощью workbook.write();
  10. Закройте выходной файл.
  11. Отображать сообщение в окне консоли при успешном выполнении программы.
  12. Отображать сообщение об ошибке в окне консоли, когда программа не выполняется успешно, этот оператор сохраняется в блоке catch.

Реализация: Давайте возьмем пример для создания гиперссылки в ячейке, которая перенаправляет на главную страницу geeksforgeeks с использованием Java.

Пример:

Java




// Java Program to Apply Hyperlink to a Cell
// in a Spreadsheet Using Apache POI
 
// Importing required classes
import java.io.*;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
        // Name of WorkBook (custom input)
        String excelfilename = "GeeksForGeeks.xlsx";
 
        // Creating a WorkBook by
        // creating an object of XSSFWorkbook class
        XSSFWorkbook workbook = new XSSFWorkbook();
 
        // Creating a Spread Sheet by creating an object of
        // XSSFSheet and also give name
        XSSFSheet spreadsheet
            = workbook.createSheet("Sheet1");
 
        // Creating a row
        XSSFRow row = spreadsheet.createRow(1);
 
        // Creating a cell and put a cell index value in it.
        XSSFCell cell = row.createCell(1);
 
        // Adding hyperlink along with cell value in it.
        cell.setCellFormula(
            "HYPERLINK("https://www.geeksforgeeks.org/", "click here")");
 
        // Try block to check for exceptions
        try {
 
            // Step 9
            FileOutputStream outputfile
                = new FileOutputStream(excelfilename);
            workbook.write(outputfile);
 
            // Closing connections using close() method
            outputfile.close();
 
            // Step 11
            System.out.println(
                excelfilename + " is written successfully");
        }
 
        // Catch block to handle exceptions
        catch (FileNotFoundException e) {
 
            // Step 12
            System.out.println("ERROR!! " + e.getMessage());
        }
    }
}

Вывод: в окне консоли

А. Когда программа успешно выполнена.

GeeksForGeeks.xlsx is written successfully.

B. Когда программа не выполняется успешно.

ERROR!! GeeksForGeeks.xlsx (The process cannot access the file because it is being used by another process)

Выход: рабочая книга (файл excel)