Рубрики
Без рубрики

API JExcel – Чтение и запись файла Excel на Java

– API JExcel – Чтение и запись файла Excel на Java

В этой статье мы обсудим, как читать и записывать файл excel с помощью JExcel API, простой библиотеки, широко используемой для простых операций, которые не требуют высокого уровня форматирования и сложных операций на основе формул.

P.S Протестировано с помощью API JExcel – 2.6.12

1. Скачать Excel

Пользователь Maven.

   
         net.sourceforge.jexcelapi
         jxl
         2.6.12
   

Или загрузите непосредственно в по этому адресу

2. Запись файла Excel

Пример API JExcel, показывающий, как создать файл Excel и записать в него данные.

package com.mkyong;

import jxl.Workbook;
import jxl.write.*;
import jxl.write.Number;

import java.io.File;
import java.io.IOException;

public class ExcelWrite {

    private static final String EXCEL_FILE_LOCATION = "C:\\temp\\MyFirstExcel.xls";

    public static void main(String[] args) {

        //1. Create an Excel file
        WritableWorkbook myFirstWbook = null;
        try {

            myFirstWbook = Workbook.createWorkbook(new File(EXCEL_FILE_LOCATION));

            // create an Excel sheet
            WritableSheet excelSheet = myFirstWbook.createSheet("Sheet 1", 0);

            // add something into the Excel sheet
            Label label = new Label(0, 0, "Test Count");
            excelSheet.addCell(label);

            Number number = new Number(0, 1, 1);
            excelSheet.addCell(number);

            label = new Label(1, 0, "Result");
            excelSheet.addCell(label);

            label = new Label(1, 1, "Passed");
            excelSheet.addCell(label);

            number = new Number(0, 2, 2);
            excelSheet.addCell(number);

            label = new Label(1, 2, "Passed 2");
            excelSheet.addCell(label);

            myFirstWbook.write();


        } catch (IOException e) {
            e.printStackTrace();
        } catch (WriteException e) {
            e.printStackTrace();
        } finally {

            if (myFirstWbook != null) {
                try {
                    myFirstWbook.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (WriteException e) {
                    e.printStackTrace();
                }
            }


        }

    }

}

Вывод, создается файл Excel со следующим содержимым:

3. Прочитать файл Excel

Пример для чтения выше файла Excel.

package com.mkyong;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import java.io.File;
import java.io.IOException;

public class ExcelRead {

    private static final String EXCEL_FILE_LOCATION = "C:\\temp\\MyFirstExcel.xls";

    public static void main(String[] args) {

        Workbook workbook = null;
        try {

            workbook = Workbook.getWorkbook(new File(EXCEL_FILE_LOCATION));

            Sheet sheet = workbook.getSheet(0);
            Cell cell1 = sheet.getCell(0, 0);
            System.out.print(cell1.getContents() + ":");    // Test Count + :
            Cell cell2 = sheet.getCell(0, 1);
            System.out.println(cell2.getContents());        // 1

            Cell cell3 = sheet.getCell(1, 0);
            System.out.print(cell3.getContents() + ":");    // Result + :
            Cell cell4 = sheet.getCell(1, 1);
            System.out.println(cell4.getContents());        // Passed

            System.out.print(cell1.getContents() + ":");    // Test Count + :
            cell2 = sheet.getCell(0, 2);
            System.out.println(cell2.getContents());        // 2

            System.out.print(cell3.getContents() + ":");    // Result + :
            cell4 = sheet.getCell(1, 2);
            System.out.println(cell4.getContents());        // Passed 2

        } catch (IOException e) {
            e.printStackTrace();
        } catch (BiffException e) {
            e.printStackTrace();
        } finally {

            if (workbook != null) {
                workbook.close();
            }

        }

    }

}

Приведенный выше код почти понятен сам по себе. Каждая ячейка или лист отображаются как объект в Java. В приведенном выше коде мы использовали JExcel jar для написания рабочего листа. При выполнении кода вывод получается следующим образом:

Test Count:1
Result:Passed
Test Count:2
Result:Passed 2

4. Добавление форматирования в файл Excel

Пример можно дополнительно улучшить, добавив некоторое форматирование. Ниже показан короткий код для добавления форматирования:

package com.mkyong;

import jxl.Workbook;
import jxl.write.*;
import jxl.write.Number;

import java.io.File;
import java.io.IOException;

public class ExcelFormat {

    private static final String EXCEL_FILE_LOCATION = "C:\\temp\\MyFormattedExcel.xls";

    public static void main(String[] args) {

        //1. Create an Excel file
        WritableWorkbook mySecondWbook = null;
        try {

            mySecondWbook = Workbook.createWorkbook(new File(EXCEL_FILE_LOCATION));
            WritableSheet myFirstSheet = mySecondWbook.createSheet("Sheet 1", 0);

            WritableCellFormat cFormat = new WritableCellFormat();
            WritableFont font = new WritableFont(WritableFont.ARIAL, 16, WritableFont.BOLD);
            cFormat.setFont(font);
            Label label = new Label(0, 0, "Test Count", cFormat);
            myFirstSheet.addCell(label);
            Number number = new Number(0, 1, 1);
            myFirstSheet.addCell(number);

            label = new Label(1, 0, "Result", cFormat);
            myFirstSheet.addCell(label);
            label = new Label(1, 1, "Passed");
            myFirstSheet.addCell(label);

            number = new Number(0, 2, 2);
            myFirstSheet.addCell(number);

            label = new Label(1, 2, "Passed 2");
            myFirstSheet.addCell(label);

            mySecondWbook.write();

        } catch (WriteException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {

            if (mySecondWbook != null) {
                try {
                    mySecondWbook.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (WriteException e) {
                    e.printStackTrace();
                }
            }


        }


    }

}

Выход

Код форматирует заголовок в Arial, 16 пикселей, жирный шрифт. Существует несколько других поддерживаемых шрифтов и размеров, доступных для изучения. Существует множество дополнительных функций Excel, которые можно использовать для создания еще более совершенного и хорошо отформатированного Excel. Эта статья дает вам фору. Обратитесь к следующим ссылкам в справочниках, чтобы ускорить работу.

Рекомендации

  1. Ссылка для загрузки Excel
  2. Ссылка на функцию и объект Excel
  3. Полное руководство по программированию в Excel
  4. Библиотека POI Apache (альтернатива API JExcel) – скачать
  5. Руководство и примеры по разработке POI для Apache
  6. Какой API лучше для чтения таблиц Excel в java –JXL или Apache POI

Оригинал: “https://mkyong.com/java/jexcel-api-reading-and-writing-excel-file-in-java/”