POI操作Excel常用方法说明
来源:互联网 发布:帝国cms投票系统 编辑:程序博客网 时间:2024/06/11 17:01
来源于:http://blog.sina.com.cn/s/blog_53fb319801013z3h.html
一、 POI简介
二、 HSSF概况
三、 POI EXCEL文档结构类
四、 EXCEL常用操作方法
1、 得到Excel常用对象
[c-sharp] view plaincopy
- POIFSFileSystem
fs=newPOIFSFileSystem( newFileInputStream( "d:/test.xls")); - //得到Excel工作簿对象
- HSSFWorkbook
wb = new HSSFWorkbook(fs); - //得到Excel工作表对象
- HSSFSheet
sheet = wb.getSheetAt(0); - //得到Excel工作表的行
- HSSFRow
row = sheet.getRow(i); - //得到Excel工作表指定行的单元格
- HSSFCell
cell = row.getCell((short) j); - cellStyle
= cell.getCellStyle();//得到单元格样式
2、建立Excel常用对象
[c-sharp] view plaincopy
- HSSFWorkbook
wb new= HSSFWorkbook(); //创建Excel工作簿对象 - HSSFSheet
sheet = wb.createSheet("new sheet" );//创建Excel工作表对象 - HSSFRow
row = sheet.createRow((short)0); //创建Excel工作表的行 - cellStyle
= wb.createCellStyle();//创建单元格样式 - row.createCell((short)0).setCellStyle(cellStyle);
//创建Excel工作表指定行的单元格 - row.createCell((short)0).setCellValue(1);
//设置Excel工作表的值
3、设置sheet名称和单元格内容
[c-sharp] view plaincopy
- wb.setSheetName(1,
"第一张工作表",HSSFCell.ENCODING_UTF_16); - cell.setEncoding((short)
1); - cell.setCellValue("单元格内容");
4、取得sheet的数目
[c-sharp] view plaincopy
- wb.getNumberOfSheets()
5、 根据index取得sheet对象
[c-sharp] view plaincopy
- HSSFSheet
sheet = wb.getSheetAt(0);
6、取得有效的行数
[c-sharp] view plaincopy
- int
rowcount = sheet.getLastRowNum();
7、取得一行的有效单元格个数
[c-sharp] view plaincopy
- row.getLastCellNum();
8、单元格值类型读写
- cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//设置单元格为STRING类型 - cell.getNumericCellValue();//读取为数值类型的单元格内容
9、设置列宽、行高
- sheet.setColumnWidth((short)column,(short)width);
- row.setHeight((short)height);
10、添加区域,合并单元格
- Region
region new= Region(( short)rowFrom,(short)columnFrom,(short)rowTo - ,(short)columnTo);//合并从第rowFrom行columnFrom列
- sheet.addMergedRegion(region);//
到rowTo行columnTo的区域 - //得到所有区域
- sheet.getNumMergedRegions()
11、保存Excel文件
- FileOutputStream
fileOut new= FileOutputStream(path); - wb.write(fileOut);
12、根据单元格不同属性返回字符串数值
- 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; -
}
13、常用单元格边框格式
- HSSFCellStyle
style = wb.createCellStyle(); - style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下边框
- style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左边框
- style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
- style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
14、设置字体和内容位置
- 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); //单元格内容的旋转的角度
15、插入图片
- //先把读进来的图片放到一个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));
16、调整工作表位置
- HSSFWorkbook
wb new= HSSFWorkbook(); - HSSFSheet
sheet = wb.createSheet("format sheet" ); - HSSFPrintSetup
ps = sheet.getPrintSetup(); - sheet.setAutobreaks(true);
- ps.setFitHeight((short)1);
- ps.setFitWidth((short)1);
17、设置打印区域
- HSSFSheet
sheet "Sheet1");= wb.createSheet( - wb.setPrintArea(0,
"$A$1:$C$2");
18、标注脚注
- HSSFSheet
sheet "format= wb.createSheet( sheet" ); - HSSFFooter
footer = sheet.getFooter() - footer.setRight(
"Page " + "HSSFFooter.page() + of " + HSSFFooter.numPages() );
19、在工作单中清空行数据,调整行位置
- HSSFWorkbook
wb new= HSSFWorkbook(); - HSSFSheet
sheet = wb.createSheet("row sheet" ); - //
Create various cells and rows for spreadsheet. - //
Shift rows 6 - 11 on the spreadsheet to the top (rows 0 - 5) - sheet.shiftRows(5,
10, -5);
20、选中指定的工作表
- HSSFSheet
sheet "row= wb.createSheet( sheet" ); - heet.setSelected(true);
21、工作表的放大缩小
- HSSFSheet
sheet1 "new= wb.createSheet( sheet" ); - sheet1.setZoom(1,2);
// 50 percent magnification
22、头注和脚注
- HSSFSheet
sheet "new= wb.createSheet( sheet" ); - HSSFHeader
header = sheet.getHeader(); - header.setCenter("Center
Header" ); - header.setLeft("Left
Header" ); - header.setRight(HSSFHeader.font("Stencil-Normal",
"Italic") + - HSSFHeader.fontSize((short)
16) "Right+ w/ );Stencil-Normal Italic font and size 16"
23、自定义颜色
- HSSFCellStyle
style = wb.createCellStyle(); - style.setFillForegroundColor(HSSFColor.LIME.index);
- style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
- HSSFFont
font = wb.createFont(); - font.setColor(HSSFColor.RED.index);
- style.setFont(font);
- cell.setCellStyle(style);
24、填充和颜色设置
- POI操作Excel常用方法说明
- POI 操作Excel常用方法
- POI操作Excel常用方法
- POI操作Excel常用方法
- POI操作Excel常用方法
- POI操作Excel常用方法
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- POI操作Excel常用方法总结
- ios 定位新功能----在程序中实现定位功能
- Solr 4.7.2 平台搭建(Solr发布到Tomcat6的详细配置)
- 按16进制打印显示一个字节数组的内容
- testng 失败自动截图
- 运用PARALLEL方式成倍提升Oracle数据分析效率
- POI操作Excel常用方法说明
- 国嵌-第四季第六课u-boot入门不能进入u-boot菜单(tiny6410)
- 静态顺序表
- LWIP内存池memp.c文件学习
- Hadoop开发遇到的问题
- Spring MVC 教程,快速入门,深入分析
- Adam学习8之数据获取
- JQuery中的id选择器含有特殊字符时,不能选中dom元素的解决方法
- javascript改变指定的css样式