java hssfcell 单元格样式_Java写入Excel文件

关于java写入Excel文件网上很多资料,现在结合类目数据做一个小功能.

如果将excel中类目数据保存到数据库类目表呢?

7f1da616f6489b0d2ce232cc6b64dd74.png

0f42e67e04dc19607d82a18c8d0f1bab.png

上代码:

/**

readExcel类



import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.yuanmao.dataservice.apps.vo.CategoryVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.WorkbookFactory;


@Slf4j
public class ReadExcel {

    private static String XLSX = "C:UsersgoldenDesktopaaaXX(产线)类目清单0308.xlsx";

    /**
     * 读取Excel数据方法 (单个sheet)
     *
     * @param filePath
     * @return
     */
    public static List<CategoryVO> readFromXLSX(String filePath) {
        File excelFile = null;
        // Excel文件对象
        InputStream is = null;
        // 输入流对象
        String cellStr = null;
        // 单元格,最终按字符串处理
        List<CategoryVO> studentList = new ArrayList<CategoryVO>();
        // 返回封装数据的List
        CategoryVO employee = null;
        // 每一个雇员信息对象
        try {
            excelFile = new File(filePath);
            is = new FileInputStream(excelFile);
            // 获取文件输入流
            org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(is);
            org.apache.poi.ss.usermodel.Sheet sheet = workbook.getSheetAt(0);
            // 开始循环遍历行,表头不处理,从1开始
            for (int i = 1; i <= sheet.getLastRowNum(); i++) {
                employee = new CategoryVO();
                // 实例化Student对象
                Row row = sheet.getRow(i);
                // 获取行对象
                if (row == null) {
                    // 如果为空,不处理
                    continue;
                }
                // 循环遍历单元格
                for (int j = 0; j < row.getLastCellNum(); j++) {
                    Cell cell = row.getCell(j);
                    // 获取单元格对象
                    if (cell == null) {
                        // 单元格为空设置cellStr为空串
                        cellStr = "";
                    } else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
                        // 对布尔值的处理
                        cellStr = String.valueOf(cell.getBooleanCellValue());
                    } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
                        // 对数字值的处理
                        cellStr = cell.getNumericCellValue() + "";
                        String[] split = StringUtils.split(cellStr, ".");
                        cellStr = split[0];
                    } else {
                        // 其余按照字符串处理
                        cellStr = cell.getStringCellValue();

                    }
                    // 下面按照数据出现位置封装到bean中
                    if (j == 0) {
                        employee.setCategoryCode1(cellStr);
                    } else if (j == 1) {
                        employee.setCategoryName1(cellStr);
                    } else if (j == 2) {
                        employee.setCategoryCode2(cellStr);
                    } else if (j == 3) {
                        employee.setCategoryName2(cellStr);
                    } else if (j == 4) {
                        employee.setCategoryCode3(cellStr);
                    } else if (j == 5) {
                        employee.setCategoryName3(cellStr);
                    } else if (j == 6) {
                        employee.setCategoryCode4(cellStr);
                    } else {
                        employee.setCategoryName4(cellStr);
                    }
                }
                studentList.add(employee);
                // 数据装入List
            }
        } catch (IOException e) {
            log.error(e.getMessage(), e);
        } catch (InvalidFormatException e) {
            // TODO Auto-generated catch block
        } finally {
            // 关闭文件流
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    log.error(e.getMessage(),e);
                }
            }
        }
        return studentList;
    }

    /**
     * 主函数
     *
     * @param args
     */
    public static void main(String[] args) {

        List<CategoryVO> list = readFromXLSX(XLSX);
        for (CategoryVO employee : list) {
            System.out.println(employee);
        }
    }
}



98c28496f306c982877fb3ee1afaa53f.png

只需要传一个excle文件地址路径到read方法中,就可以将excel类目数据保存到数据库了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值