`
yuxuguang
  • 浏览: 139196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

poi导入excel

    博客分类:
  • java
阅读更多

Action类

 

 

ImportDataService service = (ImportDataService)ApplicationFactory.getService("ImportDataService");
        String  str = "ASSETNAME,ASSETINFORMATION,ASSETTYPE,BUYINGTIME,AMOUNT,USEDDEPT,LOCATION,REMARK,ASSETSTATUS,RESPONSIBLEPERSON" ;
        for(int i=1;i<28;i++)
        {
            str = str+"clo"+i+",";
        }
        System.out.println(str);
        String[] cloName = str.split(",");
        service.importData(0, "E://work/医药价格/test.xls", cloName);

 

 

service类

 

public void importMenberData(int sheetNum, String fileName, String[] cloName)
            throws FileNotFoundException, IOException, ParseException
    {
        List listData = readPrice(sheetNum, fileName, cloName);
       
        ContactService service = (ContactService) ApplicationFactory
        .getService("ContactService");
        for (int i = 0; listData != null && i < listData.size(); i++)
        {
            Map dataMap = (Map) listData.get(i);
            Map result = new HashMap();
            MapUtil.addMap(dataMap, result, cloName);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            result.put("JOINDATE",sdf.parse(result.get("JOINDATE").toString()));
            result.put("UPDATEDATE",sdf.parse(result.get("UPDATEDATE").toString()));
            service.insertMManagement(result);
        }
    }
   
   
   
    public void importData(int sheetNum, String fileName, String[] cloName)
            throws FileNotFoundException, IOException
    {
        List listData = readPrice(sheetNum, fileName, cloName);
        String[] paras = { "ASSETNAME", "ASSETINFORMATION", "ASSETTYPE", "BUYINGTIME", "AMOUNT",
                "USEDDEPT", "LOCATION", "REMARK", "ASSETSTATUS", "RESPONSIBLEPERSON" };
        AdminManagerService service = (AdminManagerService) ApplicationFactory
                .getService("AdminManagerService");
        for (int i = 0; listData != null && i < listData.size(); i++)
        {
            Map dataMap = (Map) listData.get(i);
            Map result = new HashMap();
            MapUtil.addMap(dataMap, result, paras);
            service.insertAssetInfo(result);
        }
    }

    /** 读取excel信息,以List返回 */
    public List readPrice(int sheetNum, String fileName, String[] cloName)
            throws FileNotFoundException, IOException
    {
        POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fileName));
        HSSFWorkbook wb = new HSSFWorkbook(fs);
        HSSFSheet sheet = wb.getSheetAt(sheetNum);
        // 获得列,宽值
        int rowNum = sheet.getLastRowNum();
        int cloNum = sheet.getRow(3).getLastCellNum();
        List list = new ArrayList();
        // 单元个的值
        String cellValue = "";
        System.out.println(rowNum + "=========" + cloNum);
        for (int rowIndex = 2; rowIndex <= rowNum; rowIndex++)
        {
            Map mapData = new HashMap();
            HSSFRow row = sheet.getRow(rowIndex);
            for (int cloIndex = 1; cloIndex < cloNum; cloIndex++)
            {
                cellValue = cellValue2Str(row.getCell((short) cloIndex));
                mapData.put(cloName[cloIndex - 1], cellValue);
            }
            list.add(mapData);
        }
        return list;
    }

    /** 获得HSSFSheet */
    private HSSFSheet getSheet(int sheetNum, String fileName) throws FileNotFoundException,
            IOException
    {
        POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fileName));
        HSSFWorkbook wb = new HSSFWorkbook(fs);
        HSSFSheet sheet = wb.getSheetAt(sheetNum);
        return sheet;
    }

    /** 获得单元格值 */
    private HSSFCell getCellValue(HSSFRow row, int cellIndex)
    {
        return row.getCell((short) cellIndex++);
    }

    /** 将单元格值转换为字符型 */
    public static String cellValue2Str(HSSFCell cell)
    {
        String cellValue = "";
        switch (cell.getCellType())
        {
        case HSSFCell.CELL_TYPE_NUMERIC:
        {
            cellValue = checkNumNull(cell);
            break;
        }
        case HSSFCell.CELL_TYPE_STRING:
        {
            cellValue = checkStrNull(cell);
            break;
        }
        default:
        {
            cellValue = checkDateNull(cell);
            // System.out.println("日期是: " + cellValue);
        }
        }
        return cellValue;
    }

    static String oldValue = "";

    /** 检查单元格是否为空 */
    public static String checkNumNull(HSSFCell cell)
    {
        String cellValue = "";
        if (cell.getNumericCellValue() == 0)
        {
            cellValue = oldValue;
        }
        else
        {
            cellValue = num2str(cell.getNumericCellValue());
            oldValue = cellValue;
        }
        return cellValue;
    }

    public static String checkStrNull(HSSFCell cell)
    {
        String cellValue = "";
        if (cell.getStringCellValue().equals(null) || cell.getStringCellValue().equals(""))
        {
            cellValue = oldValue;
        }
        else
        {
            cellValue = cell.getStringCellValue();
            oldValue = cellValue;
        }
        return cellValue;
    }

    public static String checkDateNull(HSSFCell cell)
    {
        String cellValue = "";
        if (cell.getDateCellValue() == null)
        {
            cellValue = oldValue;
        }
        else
        {
            cellValue = date2str(cell.getDateCellValue());
            oldValue = cellValue;
        }
        return cellValue;
    }

    /** 数字转换为字符 */
    public static String num2str(double cellValue)
    {
        DecimalFormat df = new DecimalFormat("0.00");
        return df.format(new Double(cellValue));
    }

    /** 日期转换为字符 */
    public static String date2str(Date cellValue)
    {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        return simpleDateFormat.format(cellValue);
    }

分享到:
评论

相关推荐

    poi导入excel表需要的jar包

    在实际开发中,你可以通过以下步骤使用Apache POI来导入Excel数据: 1. **创建工作簿对象**:使用`WorkbookFactory.create()`方法,传入文件流或者文件路径来创建一个`Workbook`对象,代表整个Excel文件。 2. **...

    POI导入Excel并返回校验后的错误文件(原样)下载以及校验错误信息,同时加进度条

    POI导入Excel并返回校验后的错误文件(原样数据文件,并添加批注,注:由于批注只能加1000条,会在Excel后面添加一栏错误信息)下载以及页面展示校验错误信息,同时添加导入进度条,提供页面js和css代码,后端...

    java_poi导入 excel

    这篇博文链接虽然没有提供具体内容,但我们可以根据“java_poi导入excel”这个主题深入探讨Java POI库在Excel导入方面的应用。 首先,Java POI 提供了HSSF(用于老版本的BIFF格式,如.xls)和XSSF(用于新版本的...

    POI 导入Excel 提醒LeftoverDataException求帮助

    在提供的文件列表中,"POI 导入Excel 提醒LeftoverDataException求帮助 - J2SE.htm"可能是对问题的详细描述或解决方案,而"POI 导入Excel 提醒LeftoverDataException求帮助 - J2SE_files"可能包含了相关的代码示例或...

    Java 使用poi导入excel 并使用xml做数据验证

    在本项目中,我们结合了POI库和XML技术来实现Excel数据的验证与导入数据库。 首先,Apache POI提供了HSSF和XSSF两个API,分别用于处理老版本的BIFF8格式(.xls)和新版本的OOXML格式(.xlsx)。在这个案例中,我们...

    POI导入Excel表格数据小例子

    ### POI导入Excel表格数据小例子 #### 一、背景介绍 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,包括 Excel、Word 和 PowerPoint 等。本例通过 Apache POI 库将 Excel 文件中的数据导入到...

    java_poi导入excel通用工具类

    这个"java_poi导入excel通用工具类"是利用Java的POI库和一些额外的技术来实现对Excel数据的导入功能,使得开发人员能够方便地将Excel数据转化为Java对象或者对已有对象进行填充。下面我们将深入探讨相关的知识点。 ...

    java_poi导入excel通用工具类V0915

    "java_poi导入excel通用工具类V0915" 提供了一种通用的方式来处理Excel数据的导入工作,它支持多种赋值方式,包括单个对象、列表对象以及指定坐标的赋值。 首先,让我们深入理解一下这个工具类的主要功能: 1. **...

    java_poi实现excel导入导出

    Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...

    POI导入excel大数据处理,支持excel2003,2007

    标题提到的“POI导入excel大数据处理”是指利用Apache POI进行大量Excel数据的导入操作,同时它兼容Excel 2003(.xls格式)和2007以上版本(.xlsx格式)的文件。 POI库的主要优点包括: 1. **多格式支持**:不仅...

    SpringMvc+POI 导入Excel

    总结起来,"SpringMvc+POI 导入Excel"是一个涵盖前端交互、后端处理、文件上传、数据读取、验证和保存等多个环节的综合技术实践。通过学习和掌握这些知识点,开发者可以有效地实现Web应用中的Excel数据导入功能,...

    简单poi导入excel2003 与2007

    标题 "简单poi导入excel2003 与2007" 暗示了这个压缩包中的内容可能涉及使用Apache POI库来处理不同版本的Excel文件,主要是Excel 2003和2007。Apache POI是Java中广泛使用的库,用于读取和写入Microsoft Office格式...

    ExtJS poi 导入excel

    标题 "ExtJS poi 导入excel" 涉及到两个主要技术:ExtJS 和 Apache POI,它们在Java环境中用于处理Excel数据。ExtJS 是一个JavaScript库,主要用于构建富客户端应用程序,而Apache POI是Java的一个开源项目,用于...

    poi导入excel 兼容2003-2007xls,xlsx.txt

    poi导入excel 兼容2003-2007兼容版本,测试可以成功;poi导入excel 兼容2003-2007兼容版本,测试可以成功;

    Springboot+Poi实现Excel的导入导出

    2. **导入Excel**:读取本地Excel文件,解析Workbook,获取每个Sheet,再遍历Sheet中的Row和Cell。将读取到的数据转换为适合插入数据库的格式,通过MyBatis的SqlSession执行相应的INSERT语句,将数据存入MySQL数据库...

    POI实现Excel导入导出并附带加载进度条

    在导入Excel时,我们通常会创建一个Workbook对象,然后通过其工作表接口(Sheet)访问具体的单元格(Cell)。对于导出,我们需要创建一个新的Workbook,添加工作表,然后填充数据到相应的单元格中。 在描述中提到,...

    poi导入excel的demo

    在这个"poi导入excel的demo"中,我们将深入探讨如何使用Apache POI库来读取和写入Excel文件,支持.xls(BIFF8格式)和.xlsx(OOXML格式)这两种常见的Excel版本。 1. **Apache POI简介** Apache POI 是Java平台上...

    SpringMvc+POI 导入Excel文件

    总结来说,"SpringMvc+POI 导入Excel文件"这一主题涵盖了Web开发中几个关键的组件和技术。SpringMvc作为后端框架,处理HTTP请求并调用业务逻辑;Apache POI则提供了处理Excel文件的工具;而Jquery.form.js插件使得...

    hakey_poi导入excel示例文件.xlsx

    poi导入excel示例文件.xlsx

    POI导入Excel文件--form表单提交

    本篇文章将详细探讨如何使用POI库来导入Excel文件,并结合form表单提交的数据进行处理。我们将讨论以下几个核心知识点: 1. **Apache POI简介** Apache POI 是一个开源项目,它提供了API来处理Microsoft的Office...

Global site tag (gtag.js) - Google Analytics