一、Excel文件簡介
Excel是微軟公司開發的一種電子表格程序,多用於商業、財務、科學等各種數據處理。
Excel文件通常以.xls或.xlsx格式存儲,其中.xls格式為Excel 97-2003格式文件,後綴名為.xls,而.xlsx格式兼容Excel 2007及以上版本,後綴名為.xlsx。Excel文件能夠存儲大量的數據,並進行數據的編輯、排序、篩選、統計等操作。
二、Java讀取Excel文件
Java讀取Excel文件通常使用Apache POI組件,在使用之前需要引入以下依賴:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
首先需要創建一個Workbook對象,然後通過它獲取Sheet對象,在通過Sheet對象獲取Row和Cell對象,最後讀取單元格數據。
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ReadExcelDemo {
public static void main(String[] args) throws Exception {
File file = new File("demo.xlsx");
InputStream is = new FileInputStream(file);
Workbook workbook = new XSSFWorkbook(is);
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
System.out.print(cell.getStringCellValue() + "\t");
}
System.out.println();
}
is.close();
}
}
該示例中讀取了一個名為demo.xlsx的文件,獲取第一個Sheet並遍歷所有單元格,通過getCellType()方法獲取單元格的類型來讀取數據。在讀取完成後需關閉輸入流。
三、Java寫入Excel文件
Java寫入Excel文件同樣需要使用Apache POI組件,在使用之前也需要引入相關依賴。以下示例演示如何創建Excel文件並寫入數據:
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Date;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class WriteExcelDemo {
public static void main(String[] args) throws Exception {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row titleRow = sheet.createRow(0);
Cell titleCell = titleRow.createCell(0);
titleCell.setCellValue("標題");
Row dataRow = sheet.createRow(1);
Cell dataCell = dataRow.createCell(0);
dataCell.setCellValue(new Date().toString());
OutputStream os = new FileOutputStream("demo.xlsx");
workbook.write(os);
os.close();
}
}
該示例中創建了一個Workbook對象,通過createSheet()方法創建了一個名為Sheet1的Sheet對象,並通過createRow()方法創建了標題行和數據行,再通過setCellValue()方法設置單元格數據,最後通過FileOutputStream將數據寫入文件。
四、Java處理Excel文件
Java處理Excel文件還有很多其他的操作,例如合併單元格、設置字體、設置邊框等等。以下示例演示了如何將數據導出到Excel文件並設置標題行的樣式:
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderFormatting;
import org.apache.poi.ss.usermodel.BorderSide;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelDemo {
public static void main(String[] args) throws Exception {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row titleRow = sheet.createRow(0);
CellStyle titleStyle = workbook.createCellStyle();
titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
XSSFFont font = ((XSSFWorkbook) workbook).createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontHeightInPoints((short) 16);
titleStyle.setFont(font);
for (int i = 0; i < 3; i++) {
Cell titleCell = titleRow.createCell(i);
titleCell.setCellValue("標題" + i);
titleCell.setCellStyle(titleStyle);
sheet.setColumnWidth(i, 8000);
}
for (int i = 1; i < 4; i++) {
Row dataRow = sheet.createRow(i);
for (int j = 0; j < 3; j++) {
Cell dataCell = dataRow.createCell(j);
dataCell.setCellValue(new Date().toString());
sheet.setColumnWidth(j, 6000);
CellStyle dataStyle = workbook.createCellStyle();
dataStyle.setBorderTop(BorderFormatting.BORDER_THIN);
dataStyle.setBorderBottom(BorderFormatting.BORDER_THIN);
dataStyle.setBorderLeft(BorderFormatting.BORDER_THIN);
dataStyle.setBorderRight(BorderFormatting.BORDER_THIN);
dataCell.setCellStyle(dataStyle);
}
}
OutputStream os = new FileOutputStream("demo.xlsx");
workbook.write(os);
os.close();
}
}
該示例中設置了標題行的對齊方式、字體大小、邊框樣式,並對各列的寬度進行了設置。同時也設置了數據行的邊框樣式,並在寫入文件前關閉了輸出流。
五、小結
本文詳細介紹了Java讀取、寫入和處理Excel文件的方式,並給出了相應的代碼示例,希望能夠對使用Java操作Excel文件的開發者們有所幫助。
原創文章,作者:VLDCM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372888.html
微信掃一掃
支付寶掃一掃