Jeśli jesteś programistą aplikacji Java, pracującym z Excel z aplikacji Java, byłbyś zainteresowany zapewnieniem funkcjonalności danych Excel w aplikacji. Excel pozwala sformatować styl komórki, ustawić typ komórki na różne typy danych, wypełnić komórkę różnymi kolorami i tak dalej. Apache POI służy jako pomost między Java i Excel, oferując narzędzia do manipulowania programem Excel pliki XLSX. W tej serii blogów zaprezentujemy sztukę manipulacji Cell Excel za pomocą Apache Poi w Javie. Zanurzmy się i odkryjmy synergię kodu i arkuszy kalkulacyjnych!
Spis treści
W całym blogu przejdziemy przez próbki kodu i wyjaśnienie tego samego dla następujących:
- Tworzenie komórek w pliku Excel
- Utwórz komórki dat w programie Excel
- Praca z różnymi rodzajami komórek
- Ustawienie wyglądu komórek
Praca z komórkami w pliku Excel w java
Tworzenie komórek w pliku Excel
//Create Cells
XSSFWorkbook wb = new XSSFWorkbook();
XSSFCreationHelper createHelper = wb.getCreationHelper();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
Powyższy fragment kodu Java pokazuje użycie API API APACHES POI do pracy z komórkami w skoroszycie Excel. Kod tworzy nowy skoroszyt Excel (\ **xssfworkbook** \
), inicjuje arkusz w skoroszycie, a następnie zaludni się komórki o różnych typach danych. Po pierwsze, kod tworzy nowy arkusz o nazwie „ nowy arkusz ”. Następnie generuje wiersz w indeksie 0 na arkuszu i przechodzi do wypełnienia komórek w tym rzędzie. Pierwszą komórkę (indeks 0) przypisuje się wartość całkowitą 1 za pomocą metody \ **setCellValue** \
. Natomiast druga komórka (indeks 1) jest ustawiona na wartość dziesiętną 1,2 bezpośrednio w metodzie \ **CreateCell** \
. Trzecia komórka (indeks 2) zawiera wartość ciągów „To jest ciąg” utworzona za pomocą metody \ **createrichtextString** \
z instancji \ **xssfCreationHelper** \
. Wreszcie, czwarta komórka (indeks 3) jest wypełniona wartością logiczną „prawdziwą”. Po ustawieniu wartości komórki kod zapisuje wynikowy skoroszyt do pliku Excel o nazwie „Worgbook.xlsx” za pomocą \ **FileoutputStream** \
.
Tworzenie komórek typu daty
XSSFWorkbook wb = new XSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a date value in it. The first cell is not styled
// as a date.
Cell cell = row.createCell(0);
cell.setCellValue(new Date());
// we style the second cell as a date (and time). It is important to
// create a new cell style from the workbook otherwise you can end up
// modifying the built in style and effecting not only this cell but other cells.
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
cell = row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);
//you can also set date as java.util.Calendar
cell = row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
Ten fragment kodu Java prezentuje użycie interfejsu API API Apache do pracy z komórkami typu daty w skoroszycie Excel. Kod zaczyna się od utworzenia nowego skoroszytu Excel (\ **XSSFworkbook** \
).
Pierwsza komórka (indeks 0) ma na celu utrzymanie wartości daty. A \ **Data** \
Obiekt reprezentujący bieżącą datę i godzinę jest ustawiona jako wartość komórki za pomocą metody \ **setCellValue** \
. Ta komórka nie jest wyraźnie stylizowana jako data.
W przypadku drugiej komórki (indeks 1) nowy styl komórki (\ CellStyle \
) jest tworzony przy użyciu metody \ CreateCellStyle \
skoroszytu. Ten styl jest następnie konfigurowany tak, aby miał określony format daty i godziny za pomocą metody \ setDataFormat \
. \ CreatedATaFormat (). GetFormat („ M/D/YY H: MM ”) \
tworzy niestandardowy format daty z wzorem formatu „M/D/YY H: MM”. Drugą komórkę przypisuje się bieżącą wartość daty i godziny, a nowo utworzony styl komórki jest do niej stosowany za pomocą metody \ setCellStyle \
.
Trzecia komórka (wskaźnik 2) pokazuje alternatywną metodę wypełniania komórek typu daty za pomocą \ java.util.calendar \
. Podobnie jak w drugiej komórce, niestandardowy styl komórki jest również stosowany do tej komórki.
Praca z różnymi typami komórek
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(2);
row.createCell(0).setCellValue(1.1);
row.createCell(1).setCellValue(new Date());
row.createCell(2).setCellValue(Calendar.getInstance());
row.createCell(3).setCellValue("a string");
row.createCell(4).setCellValue(true);
row.createCell(5).setCellType(CellType.ERROR); // Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
W tej próbce kodu różne style komórek są stosowane do komórek w pliku Excel za pomocą API API APACHES, jak wyjaśniono w następujących krokach.
- Rząd jest tworzony w indeksie 2 na arkuszu za pomocą \
**Creatow** (2) \
. Komórki są następnie wypełnione w tym rzędzie z następującymi danymi. - Pierwszą komórkę (indeks 0) przypisuje się wartość dziesiętną 1.1 przy użyciu metody \
**setCellValue** \
. - W drugiej komórce (indeks 1) bieżąca data i godzina są wstawiane za pomocą obiektu \
data \
metodą \**setCellValue** \
. - Trzecia komórka (indeks 2) zawiera datę i godzinę z instancji \
kalendarz \
, ustaw za pomocą metody \**setCellValue** \
. - Czwarta komórka (indeks 3) zawiera tekst „ciąg”.
- Piąta komórka (indeks 4) jest oznaczona dla wartości logicznej „prawdziwie”.
- Idąc naprzód, określony typ komórki jest przypisany do szóstej komórki (indeks 5), wywołując metodę \
**setCellType** \
. Ta komórka jest skonfigurowana jako komórka błędów przy użyciu wyliczania \**CellType.error** \
, która wskazuje, że wyświetli wartość błędu. Wreszcie zmodyfikowany skoroszyt jest zapisywany do pliku o nazwie „Wordbook.xlsx” za pomocą \**FileoutputStream** \
. Podsumowując, ten przykład kodu pokazuje, jak ustanowić skoroszyt Excel, zastosować różne style komórek, aby pomieścić różne typy danych, a ostatecznie zapisz zmodyfikowany skoroszyt na pliku. Ta praktyczna ilustracja pokazuje możliwości biblioteki APACHE POI do pracy z plikami Excel w Javie.
Ustawienie wyglądu komórki
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(1);
// Aqua background
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(FillPatternType.BIG_SPOTS);
Cell cell = row.createCell(1);
cell.setCellValue("X");
cell.setCellStyle(style);
// Orange "foreground", foreground being the fill foreground not the font color.
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell = row.createCell(2);
cell.setCellValue("X");
cell.setCellStyle(style);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
wb.close();
Ten fragment kodu pokazuje, jak manipulować wyglądem komórek w pliku Excel za pomocą biblioteki APACHE POI w Javie. Osiąga się to za pomocą następujących kroków.
- Rząd jest tworzony w indeksie 1 na arkuszu za pomocą \
createow (1) \
. Poniższe zmiany są wprowadzane do komórek w tym rzędzie. - W przypadku pierwszej komórki (indeks 1) tworzony jest niestandardowy styl komórki przy użyciu \
wb.createCellStyle () \
. Ten styl jest skonfigurowany z kolorem tła Aqua za pomocą \setfillbackgroundColor \
i \ indexedColors.Aqua.getIndex () \. Wzór tła jest ustawiony na „duże plamy” za pomocą \
setfillpattern (FillPatternType.big_spots) `. Komórka jest tworzona w tym rzędzie w indeksie 1 i wypełniona wartością „x”. Wcześniej utworzony styl jest stosowany do tej komórki za pomocą \setCellStyle \
. - Dla drugiej komórki (indeks 2) tworzy się nowy styl komórki. Ten styl został zaprojektowany z kolorem pomarańczowym pierwszego planu przy użyciu \
setfillforegroundColor \
i \indexedColors.orange.getIndex () \
. Wzór wypełnienia jest ustawiony na „stały pierwszy plan” za pomocą \setfillpattern (FillPatternType.solid_foreground) \
. Kolejna komórka jest tworzona w indeksie 2 w tym samym rzędzie i wypełniona wartością „x”. Nowo wygenerowany styl jest następnie przypisywany do tej komórki za pomocą \setCellStyle \
. Po skonfigurowaniu wyglądu komórek zmodyfikowany skoroszyt jest zapisywany do pliku o nazwie „Worgbook.xlsx” za pomocą \FileoutputStream \
. Podsumowując, ten przykład kodu pokazuje, jak używać biblioteki APACHE POI do manipulowania wyglądem komórki w pliku Excel. Wykazane techniki obejmują tworzenie niestandardowych stylów komórek do kontrolowania tła i kolorów pierwszego planu, a także wzorców wypełnienia, zapewniając elastyczność w dostosowywaniu wizualnych arkuszy kalkulacyjnych Excel za pomocą Java.
Wniosek
We wszystkich powyższych przykładach Java dla biblioteki APACHE POI pokazaliśmy, jak pracować z zawartością pliku Excel z aplikacji Java. Próbki kodu pokazały, jak tworzyć komórki w pliku Excel, ustawić ich wygląd, ustawić styl komórki na różne typy danych, takie jak ciąg, numeryczne, dziesiętne itp. Oraz jak ustawić typ komórki do typu data. Dodamy więcej przykładów pracy z plikami Excel za pomocą Apache POI dla Java, więc bądźcie czujni.