一片关于poi 读取xls写入数据库的文档

package com.ds.action;

import java.io.FileInputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

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;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;

import com.ds.mod.chaaracter_state;

import dao.xlsDao;

public class ssss {

    private chaaracter_state cs ;
    private chaaracter_state cs1;

    public String readExcel(String filePath) {
        try {
            POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
                    filePath));
            // 创建工作簿
            HSSFWorkbook workBook = new HSSFWorkbook(fs);
            System.out.println("--------------------------------");
            /**
             *
             * 获得Excel中工作表个数
             *
             */
            System.out.println("工作表个数 :" + workBook.getNumberOfSheets());
            xlsDao xsl = new xlsDao();
            for (int i = 0; i < workBook.getNumberOfSheets(); i++) {
                HSSFSheet sheet = workBook.getSheetAt(i);
                sheet.getMargin(HSSFSheet.TopMargin);
                String f = sheet.getRow(0).getCell(0).toString();
                Integer q = xsl.xls(f);
                System.out.println("数据库返回的值为:" + q);
                String fanhui = null;
                int rows = sheet.getPhysicalNumberOfRows(); // 获得行数
                if (rows > 0) {
                    sheet.getMargin(HSSFSheet.TopMargin);
                    for (int r = 0; r < rows; r++) { // 行循环
                        HSSFRow row = sheet.getRow(r + 2); // 得到每行
                        if (row != null) {
                            int cells = row.getLastCellNum();// 获得列数
                            System.out.println("cells:"+cells);
                            if (q != cells) {
                                System.out.println("进入if:" + "第" + r + "行");
                                fanhui = " 第 " + r + "行";
                            }
                        }
                    }
                }
                if (fanhui != null) {
                    return fanhui;
                } else {
                    System.out.println("进入slse");
                    if (rows > 0) {
                        sheet.getMargin(HSSFSheet.TopMargin);
                        for (int r = 0; r < rows; r++) { // 行循环
                            List<String> xlssj=new ArrayList<String>();
                            HSSFRow row = sheet.getRow(r + 2); // 得到每行
                            System.out.println("得到行数");
                            if (row != null) {
                                int cells = row.getLastCellNum();// 获得列数
                                System.out.println("得到列数");
                                for (short c = 0; c < cells; c++) { // 列循环
                                        xlssj.add(getValue(row.getCell(c)).toString());
                                }
                            }
                            int z=0;
                            cs= new chaaracter_state();
                            cs.setChaaracter_name((String)xlssj.get(++z)); //名字
                            cs.setChaaracter_model(Integer.parseInt(xlssj.get(++z))); //形象
                            cs.setChaaracter_mind(Integer.parseInt(xlssj.get(++z))); //心情
                            cs.setChaaracter_popularity(Integer.parseInt(xlssj.get(++z))); //人气
                            cs.setChaaracter_good(Integer.parseInt(xlssj.get(++z))); //幸运
                            System.out.println("执行之前");
                            cs1=xsl.create(cs);

                            
                        }
                    }
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            return "异常";
        }
        System.out.println("执行这里");
        return "成功";
    }


     public String getValue(HSSFCell cell) {
     System.out.println("___________________________________________");
     String value = "";
     switch (cell.getCellType()) {
     case Cell.CELL_TYPE_STRING:
     value = cell.getRichStringCellValue().getString();
     System.out.println(cell.getRichStringCellValue().getString());
     System.out.println("执行跳出之前");
     break;
     case Cell.CELL_TYPE_NUMERIC:
     if (DateUtil.isCellDateFormatted(cell)) {
     System.out.println(cell.getDateCellValue());
     java.util.Date date = cell.getDateCellValue();
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
     value = format.format(date);
     } else {
     System.out.println(cell.getNumericCellValue());
     value = String.valueOf((int) Math.floor(cell.getNumericCellValue()));
     System.out.println("value="+value);
     System.out.println("Cell.CELL_TYPE_NUMERIC");
     }
     break;
     /* 此行表示该单元格值为空 */
     case HSSFCell.CELL_TYPE_BLANK: // 空值
     value = "";
     break;
     case Cell.CELL_TYPE_BOOLEAN:
     System.out.println(cell.getBooleanCellValue());
     value = " " + cell.getBooleanCellValue();
     System.out.println("Cell.CELL_TYPE_BOOLEAN");
     break;
     case Cell.CELL_TYPE_FORMULA:
     System.out.println(cell.getCellFormula());
     value = cell.getCellFormula();
     System.out.println("Cell.CELL_TYPE_FORMULA");
     break;
     default:
     System.out.println();
     }
     System.out.println("执行跳出之前"+value);
     return value;
     }

    // public static void main(String args[]) {
    // double q=1.0;
    // int a=(int)Math.floor(q);
    // System.out.println("a:"+a);
    // }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值