java对excel经行读写
java对excel经行读写
package com.common.tool.util;import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;import javax.swing.plaf.synth.Region;
import java.io.FileInputStream;
import java.io.FileOutputStream;/*** Created by dell on 2018/5/3.*/
public class CreateExcel {public static void main(String args[]) {CreateExcel createExcel = new CreateExcel();String path = "D:\\test.xlsx";//路径可随意替换try {//随意创建一个ExcelcreateExcel.createExcel(path);//读取上一行创建的ExcelcreateExcel.getExcel(path);// System.out.println("----------我是分割线----------");//创建Excel的表头createExcel.createExcelTop(path);//读取上一行创建的ExcelcreateExcel.getExcel(path);} catch (Exception e) {e.printStackTrace();}}//创建Excel文件public void createExcel(String path) throws Exception {//创建Excel文件对象HSSFWorkbook wb = new HSSFWorkbook();//用文件对象创建sheet对象 HSSFSheet sheet = wb.createSheet("第一个sheet页");//用sheet对象创建行对象 HSSFRow row = sheet.createRow(0);//创建单元格样式 CellStyle cellStyle = wb.createCellStyle();//用行对象创建单元格对象Cell Cell cell = row.createCell(0);//用cell对象读写。设置Excel工作表的值cell.setCellValue(1);//输出Excel文件FileOutputStream output = new FileOutputStream(path);wb.write(output);output.flush();}//读取Excel文件的值public void getExcel(String path) throws Exception {POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(path));//得到Excel工作簿对象 HSSFWorkbook wb = new HSSFWorkbook(fs);//得到sheet页个数(从1开始数,但是取值的时候要从index=0开始)int scount = wb.getNumberOfSheets();System.out.println("sheet页的个数为:" + (scount));for (int a = 0; a < scount; a++) {String sheetName = wb.getSheetName(a);System.out.println("第" + (a + 1) + "个sheet页的名字为" + sheetName + ",内容如下:");//得到Excel工作表对象(0代表第一个sheet页) HSSFSheet sheet = wb.getSheetAt(a);HSSFSheet sheet1 = wb.getSheet("第一个sheet页");//预定义单元格的值String c = "";//得到工作表的有效行数(行数从0开始数,取值时从index=0开始)int rcount = sheet.getLastRowNum();System.out.println("第" + (a + 1) + "个sheet页有" + rcount + "行");for (int i = 0; i <= rcount; i++) {//得到Excel工作表的行 HSSFRow row = sheet.getRow(i);if (null != row) {//获取一行(row)的有效单元格(cell)个数(列数从1开始数,取值的时候从index=0开始取)int ccount = row.getLastCellNum();System.out.println("第" + (i + 1) + "行有" + ccount + "个单元格");for (int j = 0; j < ccount; j++) {//得到Excel工作表指定行的单元格 HSSFCell cell = row.getCell(j);if (null != cell) {//得到单元格类型int cellType = cell.getCellType();switch (cellType) {//字符串类型 case HSSFCell.CELL_TYPE_STRING:c = cell.getStringCellValue();if (c.trim().equals("") || c.trim().length() <= 0)c = " ";break;case HSSFCell.CELL_TYPE_NUMERIC:c = String.valueOf(cell.getNumericCellValue());default:break;}//String c = cell.getStringCellValue();System.out.print("第" + (i + 1) + "行" + (j + 1) + "列的值为:" + c + " ");} else {System.out.print("第" + (i + 1) + "行" + (j + 1) + "列的值为:空" + " ");}}System.out.println();}else {System.out.println("第" + (i + 1) + "行的值为:空");}}}}//创建excel的表头,设置字体及字体颜色,设置单元格填充色public void createExcelTop (String path) throws Exception{//创建Excel对象HSSFWorkbook hssfWorkbook = new HSSFWorkbook();//Excel样式HSSFCellStyle style = hssfWorkbook.createCellStyle();//居中style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//Excel字体设置HSSFFont hssfFont = hssfWorkbook.createFont();hssfFont.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);hssfFont.setColor(HSSFColor.RED.index);style.setFont(hssfFont);//创建sheet对象Sheet sheet = hssfWorkbook.createSheet();//创建rowRow row = sheet.createRow(1);//创建cellCell cell = row.createCell(0);//设置cell的值cell.setCellValue("姓名");row.createCell(1).setCellValue("年龄");row.createCell(2).setCellValue("入学日期");row.createCell(3).setCellValue("分数");//Excel设置单元格填充色HSSFCellStyle style2 = hssfWorkbook.createCellStyle();style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置前景填充样式style2.setFillForegroundColor(HSSFColor.RED.index);//前景填充色for (int i = 2;i<4;i++){Row row2 = sheet.createRow(i);row2.createCell(0).setCellValue("李明");Cell cell2 = row2.createCell(1);cell2.setCellValue("21");cell2.setCellStyle(style2);row2.createCell(2).setCellValue("2017年01月01日");row2.createCell(3).setCellValue(78);}//设置标题,以及设置单元格的样式,有些样式只对单元格有效Row row5 = sheet.createRow(0);Cell cell1 = row5.createCell(0);cell1.setCellValue("学生成绩表");cell1.setCellStyle(style);//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列sheet.addMergedRegion(new CellRangeAddress(0,0,0,3));//row5.createCell(3).setCellValue();//输出Excel对象FileOutputStream output = new FileOutputStream(path);hssfWorkbook.write(output);output.flush();}}
java对excel经行读写相关推荐
- Java实现Excel文件读写
目录 一.简介 二.maven依赖 三.工具类ExcelUtil 四.测试 4.1.EmployeeVo 4.2.写入数据到Excel 4.3.从Excel读取数据 结语 一.简介 HSSFWor ...
- 使用JXL.jar实现JAVA对EXCEL的读写操作
简介: jxl.jar是通过java操作excel表格的工具类库 jxl操作excel包括对象Workbook(工作簿),Sheet(工作表) ,Cell(单元格). 一个excel就对应一个Work ...
- JAVA实现Excel的读写--poi
上一篇为大家介绍了通过xls.jar的方式生成Excel的方法,本篇就为大家再介绍一下通过poi方式实现Excel文件的读写操作,内容很简单,代码注释很清晰. 1.生成Excel文件: import ...
- EasyExcel java实现excel简单读写操作(快速上手,复制粘贴即可)
EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目. https://github.com/alibaba/easyexcel 一.导入maven坐标 Lombok可选,不导 ...
- 使用java进行excel的读写,两种excel的区别以及easyexcel的使用
EasyExcel Excel介绍: excel的样例: 工作簿:代表这个excel. 工作表:Sheet代表每一张表格 行属性:每一行的数据 列属性:每一列的数据 单元格:最小的属性 写入文件 03 ...
- java操作Excel实现读写
依赖 implementation 'org.apache.poi:poi:3.17' implementation 'org.apache.poi:poi-ooxml:3.17' implement ...
- Java对Excel的读写详解(POI)
<!-- 配置读取excel所需 --> <dependency> <groupId>dom4j</groupId> <artifactId> ...
- Java程序利用POJ读写Excel的.xls或.xlsx文件所需的3个jar包
Java程序利用POJ读写Excel文件时,不能只用poi的jar包,因为它还依赖于xmlbeans的jar包,xmlbeans又以来与common-collections的jar包,因此,正常使用P ...
- java使用jxl包读写excel表格文件,即xls格式文件
全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用jxl包读写excel表格文件,即xls格式文件 本实例演示使用jxl包实现对excel文件的操作,下载 测试代码 public st ...
最新文章
- python tk 获取鼠标事件_在Tkin中列出鼠标悬停事件函数
- git reset改写提交
- Oracle rollup 关键字用法简介.
- Hadoop处于风雨飘摇中
- 大话设计模式读书笔记--6.原型模式
- 清华计算机自主招生试题,2017年清华大学自主招生笔试题
- bin文件怎么转换成文本文档_怎么把pdf文件转换成word文档?这样转很简单
- NeurIPS 2018 中的贝叶斯研究
- 说下List接口下的那些类
- 企业会计准则2020版pdf_企业会计准则及应用指南(2017版)
- Oracle 连接查询的理解
- 温泉季节到了,设计师需要的SPA插画,完美体现那一池的温暖!
- 【★】路由环路大总结!
- 编译原理第一章笔记--绪论
- nrf52840 spi 32MHz配置
- 信创操作系统--麒麟Kylin桌面操作系统(项目九 实用工具软件:截图、字体、扫描、打印机)
- 苹果屏幕镜像如何使用,苹果系统又该如何实现镜像投屏?
- 数字绘画技术,从数位板到数位屏
- JAVA自学-day14-正则表达式、Math类、Random类、System、BigInteger、BigDecimal、Date/DateFormat、Calendar
- idea里面java文件只读,Java只读集合