生成Excel文件可以使用Apache POI库,读取Excel文件可以使用JXL或者Apache POI库。
使用Apache POI进行Excel文件读取及生成
要使用Apache POI进行Excel文件处理,需要添加以下maven依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
读取Excel文件
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
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.ss.usermodel.WorkbookFactory;
public class ExcelReader {
public static void main(String[] args) throws Exception {
String fileName = "data.xlsx";
InputStream inputStream = new FileInputStream(fileName);
Workbook workbook = WorkbookFactory.create(inputStream);
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() == CellType.NUMERIC) {
System.out.print(cell.getNumericCellValue() + "\t");
} else if (cell.getCellType() == CellType.STRING) {
System.out.print(cell.getStringCellValue() + "\t");
} else if (cell.getCellType() == CellType.BOOLEAN) {
System.out.print(cell.getBooleanCellValue() + "\t");
}
}
System.out.println();
}
workbook.close();
}
}
以上代码是一个简单的读取Excel文件的例子。首先,我们打开文件(即data.xlsx),并根据它创建一个WorkBook实例。sheet是Excel中的一个sheet,可以通过getIndexAt(index)方法获取。对于每行,我们使用一个for循环来遍历单元格。对于不同类型的单元格,我们使用不同的方法来获取其值。
生成Excel文件
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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 ExcelWriter {
public static void main(String[] args) throws FileNotFoundException, IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
for (int i = 0; i < 10; i++) {
Row row = sheet.createRow(i);
for (int j = 0; j < 5; j++) {
Cell cell = row.createCell(j);
cell.setCellValue(i * j);
}
}
FileOutputStream outputStream = new FileOutputStream("output.xlsx");
workbook.write(outputStream);
workbook.close();
}
}
以上代码是一个生成Excel文件的例子。我们首先创建一个Workbook对象(这里使用XSSFWorkbook,因为我们将要生成一个.xlsx格式的Excel文件)。然后,在工作簿 创建一个新的Excel表单 Sheet。这里我们创建了一个名为"Sheet1"的表单。
之后我们使用循环创建行和列,并在每个单元格中设置一个值。最后,我们将Workbook写入磁盘中。我们使用FileOutputStream输出流将结果写入磁盘,其文件名为"output.xlsx"。
使用JXL进行Excel文件读取及生成
JXL是一个Java库,可用于处理.xls文件。要使用JXL库,必须下载并添加jxl.jar到你的类路径中。
读取Excel文件
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ExcelReader {
public static void main(String[] args) throws BiffException, IOException {
String fileName = "data.xls";
File file = new File(fileName);
Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
for (int i = 0; i < sheet.getRows(); i++) {
for (int j = 0; j < sheet.getColumns(); j++) {
Cell cell = sheet.getCell(j, i);
System.out.print(cell.getContents() + "\t");
}
System.out.println();
}
workbook.close();
}
}
以上代码读取一个.xls文件。我们创建一个Workbook实例,它将打开给定的.xls文件并将其读入内存。 .getSheet(0)表示Sheet的索引,0表示第一张Sheet。我们使用两个循环来遍历每个单元格。通过getCell(j,i)方法获取第i行,第j列的单元格。然后我们显示单元格的内容。
生成Excel文件
import java.io.File;
import java.io.IOException;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class ExcelWriter {
public static void main(String[] args) throws IOException, WriteException {
WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls"));
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
Label label = new Label(j, i, Integer.toString(i * j));
sheet.addCell(label);
}
}
workbook.write();
workbook.close();
}
}
以上代码实现了一个生成Excel文件的例子。我们首先创建一个WritableWorkbook对象,调用createWorkbook(..)方法创建一个新的workbook对象。然后我们使用createSheet(..)方法创建一个新的worksheet。之后使用嵌套的循环根据行和列创建单元格。调用write()方法将结果写入磁盘,最后关闭workbook对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现读取及生成Excel文件的方法 - Python技术站