java对excel的处理工具类

来源:互联网 发布:java软件设计 编辑:程序博客网 时间:2024/06/06 00:34

利用java程序将数据写入excel文件 以及 读取excel文件的数据

部分内容需要根据自己的实际情况来更改  只提供大致思路


package arithmetic;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.commons.io.FileUtils;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;/** * java中对于excel的处理(通过poi的jar包来处理) * 包括将数据导入到excel中 和 将数据从excel中读取出来 * @author liujd * */public class JavaExcelUtil {//私有化构造  不让被实例化private JavaExcelUtil() {}/** * 生成Excel文件 * @param filePath 需要导出的文件路径 * @param titles 工作表的列名 * @param list需要导入的每行数据集合[[],[],[],[]]这种形式 */@SuppressWarnings({ "rawtypes", "resource" })public static void PoiExpExcel(String filePath , String[] titles , List list) {//创建工作薄HSSFWorkbook workbook = new HSSFWorkbook();//创建工作表HSSFSheet sheet = workbook.createSheet();//创建第一行(根据工作表的列名)HSSFRow row = sheet.createRow(0);HSSFCell cell = null;//插入第一行 也就是列名for(int i = 0 ;i<titles.length;i++) {cell = row.createCell(i);cell.setCellValue(titles[i]);}//追加数据for(int i = 1 ; i<= list.size();i++) {HSSFRow nextRow = sheet.createRow(i);for(int j = 0 ;j<titles.length;j++) {HSSFCell cell2 = nextRow.createCell(j);cell2.setCellValue(j);//此处需要根据具体程序更改}}//创建一个文件File file = new File(filePath);try {file.createNewFile();FileOutputStream stream = FileUtils.openOutputStream(file);workbook.write(stream);}catch(IOException e) {e.printStackTrace();}}/** * 读取excel文件 * @param filePath 要读取的文件路径 * @return */public static List PoiReadExcel(String filePath) {File file = new File(filePath);try {FileInputStream stream = FileUtils.openInputStream(file);HSSFWorkbook workbook = new HSSFWorkbook(stream);//读取默认的第一个工作表HSSFSheet sheet = workbook.getSheetAt(0);int firstRowNum = 0;//声明两个ArrayList 里层存每一行数据  外层存放所有行数据List list = new ArrayList<>();//获取sheet中最后一行行号int lastRowNum = sheet.getLastRowNum();for(int i = firstRowNum;i<=lastRowNum;i++) {HSSFRow row = sheet.getRow(i);//获取当前行最后单元格号short lastCellNum = row.getLastCellNum();List list2 = new ArrayList<>();for(int j = 0;j<lastCellNum;j++) {//获取这一行的单元格HSSFCell cell = row.getCell(j);String value = cell.getStringCellValue();list2.add(value);}list.add(list2);}return list;} catch (IOException e) {e.printStackTrace();return null;}}public static void main(String[] args) {/*String[] title = {"id","name","sex"};ArrayList list = new ArrayList<>();ArrayList list2 = new ArrayList<>();list2.add("111");list2.add("222");list2.add("333");list.add(list2);PoiExpExcel("D:/test/demo2.xls",title, list);*/List poiReadExcel = PoiReadExcel("D:/test/demo1.xls");System.out.println(poiReadExcel);}}