• 05_Excel操作_01_简单导入导出


    【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”,查看如下:

  • 相关阅读:
    计算器代码
    acm数论之旅(转载)---最大公约数与最小公倍数
    acm数论之旅(转载) -- 快速幂
    acm数论之旅(转载)--素数
    位运算符(转载)
    最短路问题
    并查集
    深度优先探索与广度优先探索
    ACM注意事项
    LTE Module User Documentation(翻译6)——物理误差模型、MIMO模型、天线模型
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5784473.html
Copyright © 2020-2023  润新知