【Excel组成】
主要由四部分组成:
1.工作簿
每一个Excel文件都可以看成是一个工作簿,当打开一个Excel文件时,相当于打开了一个Excel工作簿。
2.工作表
当打开了Excel工作簿后,我们可以在底部看到"Sheet"标签,这个就表示工作表,一个"sheet"标签代表一个工作表。
3.行
每个工作表内,每一行就是一行。如图表示第3行
4.单元格
理解了Excel的基本含义后,可以开始用java代码来操作Excel了,本文使用POI来操作Excel。
【POI操作Excel的流程】
1.操作(创建、读取)工作簿(Excel文件)
2.操作工作表
3.操作行
4.操作单元格
【Excel样式】
合并单元格对象是属于工作簿,运用于工作表。
//起始行号,结束行号,起始列号,结束列号
CellRangeAddress(int firstRow,int lastRow, int firstCol,int lastCol);
样式属于工作簿,运用于单元格;
字体属于工作簿,加载在样式中通过样式运用于单元格。
【POI包中主要对象-------Excel中几个对象对应表】
使用上面的几个POI中的对象,我们来具体操作一下Excel
【工程截图】
【OperateExcel.java】testWriteExcel()方法,创建工作簿,向某一行某一列的单元格写入数据
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.util.CellRangeAddress; import org.junit.Test; public class OperateExcel { /** * 创建工作簿,并向某一行某一列写入数据 * @throws IOException */ @Test public void testWriteExcel() throws IOException{ //1.创建工作簿 HSSFWorkbook workbook=new HSSFWorkbook(); //2.创建工作表,命名为"hello work!" HSSFSheet sheet=workbook.createSheet("hello work!"); //3.创建行,如:第6行(Excel的第6行) HSSFRow row=sheet.createRow(5); //4.创建单元格,第6行第4列 HSSFCell cell=row.createCell(3); cell.setCellValue("HigginCui!!加油啊啊啊!"); //设置写入单元格的字符串值 String fileName="D:\测试.xls"; //Excel(工作簿)保存在D盘,名称为"测试.xls" FileOutputStream fileOutputStream=new FileOutputStream(fileName); workbook.write(fileOutputStream); workbook.close(); fileOutputStream.close(); } }
【运行结果】
首先看D盘下是否生成的名为"测试.xls"的Excel文件。
打开文件查看内容:
【OperateExcel.java】testReadExcel()方法,读取已存在的Excel(工作簿)中某一行某一列的单元格的数据。
/** * 读取某一行某一列的值 * @throws IOException */ @Test public void testReadExcel() throws IOException{ String fileName="D:\测试.xls"; FileInputStream fileInputStream=new FileInputStream(fileName); //1.读取工作簿 HSSFWorkbook workbook=new HSSFWorkbook(fileInputStream); //2.读取工作表 HSSFSheet sheet=workbook.getSheetAt(0); //3.读取行,第6行 HSSFRow row=sheet.getRow(5); //4.读取列,第6行第4列 HSSFCell cell=row.getCell(3); System.out.println("第6行第4列的值:"+cell.getStringCellValue()); workbook.close(); fileInputStream.close(); }
【运行结果】
查看控制台读取的数据
【OperateExcel.java】testStyleExcel()方法,创建工作簿,并合并单元格、字体设置、背景色设置等 样式功能
/** * 合并单元格、字体、背景色等样式设置 * @throws IOException */ @Test public void testStyleExcel() throws IOException{ //1.创建工作簿 HSSFWorkbook workbook=new HSSFWorkbook(); //1.1 创建 合并单元格对象,合并第3行第3列 CellRangeAddress cellRangeAddress=new CellRangeAddress(2,2,2,4);//起始行号,结束行号,起始列号,结束列好 //1.2创建 单元格样式 HSSFCellStyle style=workbook.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //设置水平居中 style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //垂直居中 //1.3创建 字体 HSSFFont font=workbook.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //设置字体加粗 font.setFontHeightInPoints((short)16); //字体大小为16 //将字体加载到工作簿的样式中 style.setFont(font); //1.4设置背景 style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //设置填充模式 style.setFillForegroundColor(HSSFColor.GREEN.index); //设置背景为绿色 //2.创建工具类 HSSFSheet sheet=workbook.createSheet("hello work..."); //2.1加载 合并单元格对象 sheet.addMergedRegion(cellRangeAddress); //3.创建行,第3行 HSSFRow row =sheet.createRow(2); //4.创建单元格,第3行第3列 HSSFCell cell=row.createCell(2); //4.1加载 单元格格式 cell.setCellStyle(style); cell.setCellValue("Hello World!!!"); String fileName="D:\测试.xls"; //存放Excel的路径 FileOutputStream fileOutputStream=new FileOutputStream(fileName); workbook.write(fileOutputStream); workbook.close(); fileOutputStream.close(); }
【运行结果】
直接打开“D:\测试.xls”,查看如下: