POI提供了对Excel文件的读写,HSSF和XSSF提供创建,修改,读取和写入电子表格的方式
HSSF - 读写Excel '97(-2007)(.xls)文件格式
XSSF - 读写Excel 2007 OOXML(.xlsx)文件格式
SXSSF - XSSF的API兼容流扩展,用于生成大型电子表格,堆空间有限,实现低内存占用
org.apache.poi.ss.SpreadsheetVersion
Workbook是创建或维护Excel工作簿的所有类的超接口。它属于org.apache.poi.ss.usermodel包
工作表Sheet是工作簿Workbook的中心结构,一个工作簿最少 有一个工作表Sheet
以HSSFWorkbook为例:
工作表Sheet名是有限制条件的:
5. Sheet名不能超过31个字符
6. 不得包含任何以下任何字符:
- 0x0000 - 0x0003 - 冒号(:) - 反斜杠(\) - 星号(*) - 问号(?) - 正斜杠(/) - 方括号([])
POI提供了创建合法Sheet名的方法:
org.apache.poi.ss.util.WorkbookUtil#createSafeSheetName(final String nameProposal)
1. 创建输出流OutputStream
2. 创建工作簿Workbook
3. 创建工作表Sheet
4. 创建行Row
5. 创建单元格Cell
6. 设置单元格值
7. 工作簿写入输出流
8. 关闭输出流
package hssf.sheet.sheet;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.RichTextString;
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.util.WorkbookUtil;
import util.ExcelUtil;
public class ExportSheet {
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\Administrator\\Desktop\\test.xls");
if (file.exists()) {
file.delete();
}
BufferedOutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test.xls"));
exportExcel(out);
} finally {
out.close();
}
}
private static void exportExcel(BufferedOutputStream out) throws Exception {
// Step 1 : 创建工作簿Workbook
Workbook workbook = new HSSFWorkbook();
// Workbook workbook = new XSSFWorkbook();
String safeSheetName = WorkbookUtil.createSafeSheetName("合法工作表");
// Step 2 : 创建工作表Sheet
Sheet sheet = workbook.createSheet(safeSheetName);
// 设置列宽
setColWidth (sheet);
Row row = null;
Cell cell = null;
for (int rowIndex = 0; rowIndex < 10; rowIndex++) {
// Step 3 : 创建行Row
row = sheet.createRow(rowIndex);
row.setHeightInPoints(30);
for (short colIndex = 0; colIndex < 10; colIndex++) {
// Step 4 : 创建单元格Cell
cell = row.createCell(colIndex);
RichTextString text = new HSSFRichTextString(ExcelUtil.convertNum2CellId(rowIndex, colIndex));
// Step 5 : 设置单元格内容
cell.setCellValue(text);
}
}
workbook.write(out);
}
/** * 设置列宽 * */
private static void setColWidth(Sheet sheet) {
// 默认行高列宽
sheet.setDefaultRowHeight((short)(20*20));
sheet.setDefaultColumnWidth(4);
for (int colIndex = 0; colIndex < 10; colIndex++) {
sheet.setColumnWidth(colIndex, 12*256);
}
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/lipinganq/article/details/78067901
内容来源于网络,如有侵权,请联系作者删除!