1、遍历workbook
// load源文件
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filePath));
HSSFWorkbook wb = new HSSFWorkbook(fs);
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
HSSFSheet sheet = wb.getSheetAt(i);
for (int j = sheet.getFirstRowNum(); j < sheet.getLastRowNum(); j++) {
HSSFRow row = sheet.getRow(j);
if (row != null) {
// 。。。操作}
}
}
}
// 目标文件
FileOutputStream fos = new FileOutputStream(objectPath);
// 写文件
wb.write(fos);
fos.close();
2、得到列和单元格
HSSFRow row = sheet.getRow(i);
HSSFCell cell = row.getCell((short) j);
3、设置sheet名称和单元格内容为中文
wb.setSheetName(n, "中文",HSSFCell.ENCODING_UTF_16);
cell.setEncoding((short) 1);
cell.setCellValue("中文");
4、单元格内容未公式或数值,可以这样读写
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.getNumericCellValue();
5、设置列宽、行高
sheet.setColumnWidth((short)column,(short)width);
row.setHeight((short)height);
6、添加区域,合并单元格
Region region = new Region((short)rowFrom,(short)columnFrom,(short)rowTo,(short)columnTo);
sheet.addMergedRegion(region);
//得到所有区域
sheet.getNumMergedRegions() ;
7、常用方法
根据单元格不同属性返回字符串数值
public String getCellStringValue(HSSFCell cell) {
String cellValue = "";
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
cellValue = cell.getStringCellValue();
if (cellValue.trim().equals("") || cellValue.trim().length() <= 0)
cellValue = " ";
break;
case HSSFCell.CELL_TYPE_NUMERIC:
cellValue = String.valueOf(cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA:
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cellValue = String.valueOf(cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_BLANK:
cellValue = " ";
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
break;
case HSSFCell.CELL_TYPE_ERROR:
break;
default:
break;
}
return cellValue;
}
8、常用单元格边框格式
虚线HSSFCellStyle.BORDER_DOTTED
实线HSSFCellStyle.BORDER_THIN
public static HSSFCellStyle getCellStyle(short type) {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFCellStyle style = wb.createCellStyle();
style.setBorderBottom(type);// 下边框
style.setBorderLeft(type);// 左边框
style.setBorderRight(type);// 右边框
style.setBorderTop(type);// 上边框
return style;
}
9、设置字体和内容位置
HSSFFont f = wb.createFont();
f.setFontHeightInPoints((short) 11);// 字号
f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);// 加粗
style.setFont(f);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
style.setRotation(short rotation);// 单元格内容的旋转的角度
HSSFDataFormat df = wb.createDataFormat();
style1.setDataFormat(df.getFormat("0.00%"));// 设置单元格数据格式
cell.setCellFormula(string);// 给单元格设公式
style.setRotation(short rotation);// 单元格内容的旋转的角度
cell.setCellStyle(style);
10、插入图片
// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
// 读进一个excel模版
FileInputStream fos = new FileInputStream(filePathName + "/stencil.xlt");
fs = new POIFSFileSystem(fos);
// 创建一个工作薄
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255, (short) 0, 0, (short) 10, 10);
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
分享到:
相关推荐
它提供了一些基本的样式设置,例如对齐方式、背景颜色、边框样式、字体样式等。 对齐方式 HSSFCellStyle 提供了多种对齐方式,包括水平对齐和垂直对齐。水平对齐有LEFT、CENTER、RIGHT三种方式,而垂直对齐有TOP、...
本文总结了 POI-excel 的一些常用方法和样式设计,包括读取 Excel 文件、获取单元格内容、设置单元格内容、读取单元格内容、设置列宽和行高、添加区域和合并单元格、常用方法和常用单元格边框格式等。
本文将详细介绍如何使用 Java POI 来生成 Excel 报表,并涵盖如何设置单元格的各种格式和样式。 #### 二、环境准备 在开始之前,请确保已经安装了以下工具和库: 1. **Java 开发环境**:确保你的开发环境中已安装 ...
- **样式设置**:可以设置单元格的字体、背景颜色、边框样式等。 ```java // 添加一行 HSSFRow newRow = sheet.createRow(sheet.getLastRowNum() + 1); // 添加单元格并设置值 HSSFCell newCell = newRow....
本文详细介绍了如何使用 Apache POI 在 Excel 文件中添加超链接,包括使用 `HYPERLINK` 公式和设置样式的方法,并提供了一个完整的示例代码。通过这些方法,你可以轻松地在 Excel 文件中创建各种类型的超链接,提高...
在添加边框样式时,NPOI提供了HSSFCellStyle类,它包含了一系列方法来设置单元格的样式,包括边框。你可以使用SetBorderBottom、SetBorderTop、SetBorderLeft和SetBorderRight方法分别设置单元格的底部、顶部、左边...
本篇将详细讲解如何使用POI操作Excel,特别是处理中文字符以及设置单元格样式。 首先,导入必要的POI库: ```java import java.util.ArrayList; import java.util.Iterator; import org.apache.poi.hssf.usermodel....
6. **设置单元格样式**:可以使用样式方法来设置单元格的样式。 ```java cell.setCellStyle(normalStyle); ``` 7. **设置单元格公式**:如果需要为单元格设置公式,可以使用`setCellFormula()`方法。 ```java...
这篇教程针对Java初学者,将详细介绍如何利用POI库进行Excel报表的开发,以及如何设置样式。 首先,你需要下载POI的最新版本。截至文章发布时,POI的最新稳定版本是3.0.1。虽然这个版本不完全支持Excel 2007的新...
通过这个方法,可以方便地设置单元格的上下左右边框样式。 ### 9. 设置字体样式 设置字体样式可以让Excel表格更具可读性和专业性: ```java HSSFFont f = wb.createFont(); f.setFontHeightInPoints((short)11); ...
从创建Excel工作簿、工作表到设置单元格样式及写入数据,每一步都有详细的解释。掌握了这些基础后,可以根据实际需求进一步扩展功能,例如动态生成Excel文件、支持更复杂的数据类型等。通过这种方式,可以轻松地将...
在数据写入循环中,对于每一条数据,创建新的`HSSFRow`,遍历列数,创建`HSSFCell`,设置数据样式,这里特别注意设置了UTF-16编码以支持中文字符的正确输出。根据原始数据的类型,可以适当地转换并写入单元格,例如...
此示例说明了如何设置单元格的边框样式。 ##### 图像与形状 ```java // 加载图片文件 FileInputStream fis = new FileInputStream("image.png"); byte[] bytes = new byte[fis.available()]; fis.read(bytes); fis...
虽然提供的代码片段没有涉及到样式设置的部分,但我们可以简单了解一下如何通过Java设置Excel表格的样式。例如,可以通过`HSSFCellStyle`类来设置单元格的字体、对齐方式等。 #### 3.1 创建样式 ```java ...
生成 Excel 文件的过程可以分为三步:创建工作簿对象、写入数据和设置字体和单元格样式。 创建工作簿对象 首先,需要引入 POI 的包 import org.apache.poi.hssf.usermodel.*;import org.apache.poi.hssf.util....
4. HSSFCell:表示Excel中的一个单元格,可以设置其值和样式。 5. HSSFFont:用于定义单元格字体的样式,如颜色、大小、斜体等。 6. HSSFName:定义名称或公式引用。 7. HSSFDataFormat:用于设置单元格的数据格式,...
- **样式设置**:通过`HSSFCellStyle`对象可以设置单元格的各种样式,例如字体、边框、背景色等。 - **数据格式化**:`HSSFDataFormat`对象用于设置日期和数字的显示格式。 - **图表支持**:虽然在早期版本的POI中不...
8. **实战示例**:博客文章可能会提供具体的使用POI进行Excel操作的示例,如创建一个新的Excel文件,添加工作表,填充数据,设置样式,然后保存到磁盘。 通过这些知识点,开发者可以学习如何在Java项目中有效地利用...