POI 实战示例
AI-摘要
WenXi GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
安装和配置
下载POI库:访问Apache POI的官方网站(https://poi.apache.org/)下载POI库的最新版本。
配置POI库到你的Java项目中:将下载的POI库的JAR文件添加到你的项目的类路径中。
设置依赖项和构建工具:如果你使用构建工具(如Maven或Gradle),则需要在项目的构建文件中添加POI库的依赖项。
使用POI
读取操作
import org.apache.poi.ss.usermodel.*;
public class ExcelReader {
public static void main(String[] args) {
try {
// 创建Workbook对象
Workbook workbook = WorkbookFactory.create(new File("path/to/your/excel/file.xlsx"));
// 获取第一个Sheet对象
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行
for (Row row : sheet) {
// 遍历每个单元格
for (Cell cell : row) {
// 读取单元格数据
CellType cellType = cell.getCellType();
if (cellType == CellType.STRING) {
String cellValue = cell.getStringCellValue();
System.out.println(cellValue);
} else if (cellType == CellType.NUMERIC) {
double cellValue = cell.getNumericCellValue();
System.out.println(cellValue);
}
// 其他数据类型的处理
}
}
// 关闭Workbook对象
workbook.close();
} catch (IOException | InvalidFormatException e) {
e.printStackTrace();
}
}
}
写入操作
import org.apache.poi.ss.usermodel.*;
public class ExcelWriter {
public static void main(String[] args) {
// 创建Workbook对象
Workbook workbook = new XSSFWorkbook();
// 创建Sheet对象
Sheet sheet = workbook.createSheet("Sheet1");
// 创建Row对象
Row row = sheet.createRow(0);
// 创建Cell对象并写入数据
Cell cell1 = row.createCell(0);
cell1.setCellValue("Hello");
Cell cell2 = row.createCell(1);
cell2.setCellValue("World");
// 保存Workbook到文件
try {
FileOutputStream fileOut = new FileOutputStream("path/to/save/excel/file.xlsx");
workbook.write(fileOut);
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
// 关闭Workbook对象
workbook.close();
}
}
样式和格式
import org.apache.poi.ss.usermodel.*;
public class ExcelStyling {
public static void main(String[] args) {
// 创建Workbook对象
Workbook workbook = new XSSFWorkbook();
// 创建Sheet对象
Sheet sheet = workbook.createSheet("Sheet1");
// 创建Row对象
Row row = sheet.createRow(0);
// 创建Cell对象并写入数据
Cell cell = row.createCell(0);
cell.setCellValue("Styled Cell");
// 创建样式对象
CellStyle cellStyle = workbook.createCellStyle();
// 设置字体
Font font = workbook.createFont();
font.setFontName("Arial");
font.setFontHeightInPoints((short) 12);
font.setBold(true);
cellStyle.setFont(font);
// 设置边框和背景色
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// 设置数据格式
DataFormat dataFormat = workbook.createDataFormat();
cellStyle.setDataFormat(dataFormat.getFormat("0.00"));
// 应用样式到单元格
cell.setCellStyle(cellStyle);
// 保存Workbook到文件
try {
FileOutputStream fileOut = new FileOutputStream("path/to/save/excel/file.xlsx");
workbook.write(fileOut);
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
// 关闭Workbook对象
workbook.close();
}
}
图表操作
import org.apache.poi.ss.usermodel.*;
public class ExcelChart {
public static void main(String[] args) {
// 创建Workbook对象
Workbook workbook = new XSSFWorkbook();
// 创建Sheet对象
Sheet sheet = workbook.createSheet("Sheet1");
// 创建数据行和单元格
Row row1 = sheet.createRow(0);
row1.createCell(0).setCellValue("Category");
row1.createCell(1).setCellValue("Value 1");
row1.createCell(2).setCellValue("Value 2");
Row row2 = sheet.createRow(1);
row2.createCell(0).setCellValue("A");
row2.createCell(1).setCellValue(10);
row2.createCell(2).setCellValue(20);
Row row3 = sheet.createRow(2);
row3.createCell(0).setCellValue("B");
row3.createCell(1).setCellValue(15);
row3.createCell(2).setCellValue(25);
// 创建图表对象
Drawing<?> drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 4, 1, 10, 15);
Chart chart = drawing.createChart(anchor);
// 创建数据源
DataRange dataRange = sheet.createDataRange(new CellRangeAddress(0, 2, 0, 2));
chart.displayBlanksAs(DisplayBlanks.GAP);
chart.plot(dataRange);
// 创建数据系列
ChartDataSource<Number> category = DataSources.fromNumericCellRange(sheet, new CellRangeAddress(1, 2, 0, 0));
ChartDataSource<Number> values1 = DataSources.fromNumericCellRange(sheet, new CellRangeAddress(1, 2, 1, 1));
ChartDataSource<Number> values2 = DataSources.fromNumericCellRange(sheet, new CellRangeAddress(1, 2, 2, 2));
DataSeries series1 = chart.addSeries(category, values1);
DataSeries series2 = chart.addSeries(category, values2);
// 设置图表样式和标题
ChartAxis bottomAxis = chart.getChartAxisFactory().createCategoryAxis(AxisPosition.BOTTOM);
ChartAxis leftAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.LEFT);
chart.setTitleText("Sample Chart");
chart.plot(dataRange, bottomAxis, leftAxis);
// 保存Workbook到文件
try {
FileOutputStream fileOut = new FileOutputStream("path/to/save/excel/file.xlsx");
workbook.write(fileOut);
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
// 关闭Workbook对象
workbook.close();
}
}
以上示例代码提供了基本的操作和功能示例,你可以根据你的具体需求进行修改和扩展。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 平凡先生/文奚
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果