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

导入excel 数据

阅读更多
引用
导出数据

 @Override
    public void exportExcelData(File file, PageIdxPagetion pagetion,
            Map<String, Object> searchParam) {
        List<ProdVo> list = null;
        Workbook workbook;
        try {
            workbook = WorkbookFactory.create(FileUtils.openInputStream(file));
            do {
                list = prodVoService.list(searchParam, pagetion);
                Sheet sheet = workbook.createSheet((pagetion.getItemIdx() + 1)
                        + "-" + pagetion.getNextPageItemIdx());
                Row row = sheet.createRow((int) 0);
                Cell cell = row.createCell(0);
                CellStyle style = workbook.createCellStyle();
                style.setAlignment(CellStyle.ALIGN_CENTER); // 创建一个居中格式
                style.setBorderBottom((short) 1);
                style.setBorderRight((short) 1);
                String[] header = new String[] { "ID", "商户名称", "店铺名称", "MCC代码",
                        "渠道编号", "产品编号", "商户属性", "线上线下标识0:线上轧差1.线下返佣" };
                sheet.setColumnWidth(0, 30 * 256);
                sheet.setColumnWidth(1, 50 * 256);
                sheet.setColumnWidth(2, 50 * 256);
                sheet.setColumnWidth(7, 30 * 256);
                for (int j = 0; j < header.length; j++) {
                    cell = row.createCell((short) j);
                    cell.setCellValue(header[j]);
                    cell.setCellStyle(style);
                }
                for (int i = 0; i < list.size(); i++) {
                    row = sheet.createRow((int) i + 1);
                    ProdVo prodVo = (ProdVo) list.get(i);
                    // 创建单元格,并设置值
                    cell = row.createCell((short) 0);
                    cell.setCellValue(prodVo.getId().toString());
                    cell = row.createCell((short) 1);
                    cell.setCellValue(prodVo.getCompName());

                    cell.setCellStyle(style);
                    cell = row.createCell((short) 2);
                    cell.setCellValue(prodVo.getShopName());
                    cell.setCellStyle(style);
                    cell = row.createCell((short) 3);
                    cell.setCellValue(prodVo.getMcc());
                    cell.setCellStyle(style);
                    cell = row.createCell((short) 4);
                    cell.setCellValue(prodVo.getChannelNo());
                    cell.setCellStyle(style);
                    cell = row.createCell((short) 5);
                    cell.setCellValue(prodVo.getProdNo());
                    cell.setCellStyle(style);
                    cell = row.createCell((short) 6);
                    String mchProp = "";
                    if (null != prodVo.getMchProp()) {
                        if (prodVo.getMchProp().ordinal() == 1) {
                            mchProp = "收单";
                        } else if (prodVo.getMchProp().ordinal() == 2) {
                            mchProp = "分期";
                        } else if (prodVo.getMchProp().ordinal() == 3) {
                            mchProp = "积分";
                        } else if (prodVo.getMchProp().ordinal() == 4) {
                            mchProp = "定向支付";
                        }
                    }
                    cell.setCellValue(mchProp);
                    cell = row.createCell((short) 7);
                    cell.setCellValue("");
                    CellStyle style1 = workbook.createCellStyle();
                    style1.setLocked(false);
                    style1.setFillBackgroundColor(IndexedColors.YELLOW
                            .getIndex());
                    cell.setCellStyle(style1);

                }
                sheet.protectSheet("123");
                pagetion.setPageIdx(pagetion.getPageIdx() + 1);
            } while (pagetion.getPageIdx() <= pagetion.getTotalPage());

            FileOutputStream fout = FileUtils.openOutputStream(file);
            workbook.write(fout);
            fout.close();
            logger.info("文件 写入完成" + file.getName());

        } catch (EncryptedDocumentException e) {
            logger.error("异常" + e.getMessage());
        } catch (InvalidFormatException e) {
            logger.error("异常" + e.getMessage());
        } catch (IOException e) {
            logger.error("文件流异常" + e.getMessage());
        }

    }


引用
导入xls/xlsx文件

   @Override
    public Boolean importExcel(String fileName) {
        Workbook workbook = null;
        File file = new File(localTmpPath + fileName);
        logger.info("文件地址" + file.getPath());
        // 标志量,任何校验错误都会被设置为true
        boolean flag = false;

        try {
            workbook = WorkbookFactory.create(FileUtils.openInputStream(file));
            int st = workbook.getNumberOfSheets();
            for (int i = 0; i < st; i++) {
                Sheet sheet = workbook.getSheetAt(i);
                Drawing drw = sheet.createDrawingPatriarch();
                Iterator<Row> rows = sheet.rowIterator(); // 获得第一个表单的迭代器
                rows.next();// 排除表头
                while (rows.hasNext()) {
                    Row row = rows.next(); // 获得行数据
                    ProdVo prodVo = new ProdVo();
                    Cell cell = row.getCell(0);
                    prodVo.setId(UUID.fromString(cell.getStringCellValue()));
                    Cell cell7 = row.getCell(7);
                    int flagValue = 0;
                    if (cell7.getCellType() == Cell.CELL_TYPE_STRING) {
                        if (StringUtils.isBlank(cell7.getStringCellValue())) {
                            createComment(drw, cell7, "线下标识为空");
                            flag = true;
                        } else {
                            try {
                                flagValue = Integer.parseInt(cell7
                                        .getStringCellValue());
                            } catch (Exception e) {
                                createComment(drw, cell7, "数据不合法");
                                flag = true;
                            }
                        }
                    } else if (cell7.getCellType() == Cell.CELL_TYPE_NUMERIC) {
                        double value = cell7.getNumericCellValue();
                        flagValue = (int) value;
                    }
                    if (!flag) {
                        prodVo.setOnlineFlag(flagValue);
                        prodVoService.modify(prodVo);
                    }
                }
            }
            FileOutputStream fout = FileUtils.openOutputStream(file);
            workbook.write(fout);
            fout.close();
        } catch (Exception e) {
            logger.error("读取文件错误" + fileName);
        }
        return flag;
    }
    
    private void createComment(Drawing drw, Cell cell, String string) {
        Comment comment = drw.createCellComment(drw.createAnchor(0, 0, 0, 0,
                cell.getColumnIndex() + 1, cell.getRowIndex(),
                cell.getColumnIndex() + 2, cell.getRowIndex() + 1));
        CreationHelper ch = cell.getSheet().getWorkbook().getCreationHelper();
        comment.setString(ch.createRichTextString(string));
        comment.setAuthor("admin");
        cell.setCellComment(comment);
    }


引用
通用获取单元格格式化值

  private static String getCellContent(Cell cell) {
        return FORMATTER.formatCellValue(cell);
    }

分享到:
评论

相关推荐

    matlab导入excel数据教程

    Matlab 导入 Excel 数据教程 Matlab 是一个功能强大的数据分析和处理工具,而 Excel 是一个广泛应用于数据存储和处理的电子表格软件。将 Excel 中的数据导入 Matlab 是一种常见的数据处理需求。以下是 Matlab 导入 ...

    PB中导入EXCEL数据.doc

    PB 中导入 EXCEL 数据 在 PowerBuilder 中,开发者常常需要将 EXCEL 数据导入到应用程序中,以便进行数据分析、处理和展示。在本文中,我们将探讨如何使用 PowerBuilder 将 EXCEL 数据导入到应用程序中。 OLE 对象...

    如何利用Smulink导入Excel数据进行数据分析

    ### 如何利用Simulink导入Excel数据进行数据分析 #### 一、引言 在现代工程领域,特别是控制工程和系统仿真领域,Simulink作为MATLAB的一个重要组件,被广泛应用于建模、仿真以及分析复杂系统的动态行为。为了验证...

    多线程导入excel 数据

    在Java编程中,多线程导入Excel数据是一项常见的任务,特别是在大数据处理和高并发场景下。这个场景通常涉及到性能优化和资源管理,以确保系统稳定性和数据一致性。下面将详细阐述多线程导入Excel数据的核心知识点。...

    Developer导入Excel数据

    Developer 导入 Excel 数据 作为一名经验丰富的 IT 行业大师,我将为您详细介绍 Developer 导入 Excel 数据的相关知识点。 标题解释 Developer 导入 Excel 数据是指使用 PLSQL Developer 工具将 Excel 文件中的...

    批量导入Excel数据到数据库,带数据校验/事务回滚

    在.NET开发环境中,批量导入Excel数据到数据库是一项常见的任务,特别是在数据分析、系统集成或报表生成等场景中。本文将深入探讨如何实现这个过程,并重点讨论数据校验和事务回滚两个关键环节。 首先,批量导入...

    c#批量导入excel数据到oracle数据库.rar

    本资源包提供了一个实用的解决方案,即使用C#编程语言批量导入Excel数据到Oracle 11G数据库。以下将详细阐述这个过程涉及的关键知识点。 首先,我们要了解C#。C#是由微软开发的一种面向对象的编程语言,广泛应用于...

    C#导入excel数据

    首先,我们需要了解C#导入Excel数据的基本步骤。通常,这涉及到以下几个关键点: 1. **引用库**:为了在C#中操作Excel文件,我们需要引入适当的库。Microsoft.Office.Interop.Excel是Microsoft提供的一个接口,允许...

    .net 导入EXCEL数据

    以下是一个简单的示例,展示如何使用EPPlus导入Excel数据: ```csharp using OfficeOpenXml; // 加载Excel文件 ExcelPackage.LicenseContext = LicenseContext.NonCommercial; using (var package = new ...

    mssql2000导入excel数据

    标题“mssql2000导入excel数据”指的是在Microsoft SQL Server 2000中将数据从Excel文件导入到SQL Server数据库的过程。这个过程在数据迁移、数据分析或数据整合时非常常见,尤其是在处理大量源自电子表格的数据时。...

    图解运用PLSQL工具导入Excel数据

    图解运用PLSQL工具导入Excel数据 PLSQL 是 Oracle 数据库管理系统中的一种编程语言,常用于创建存储过程、函数和触发器。PLSQL 工具是 Oracle 数据库管理系统中的一种图形化界面,提供了一个交互式的环境,用于创建...

    Flex利用as3xls导入excel数据表

    这篇博文“Flex利用as3xls导入excel数据表”探讨了如何在Adobe Flex项目中读取和导入Excel(.xls)文件的数据,以便在Flex应用程序中进行进一步处理或展示。Flex是一个开源的、基于ActionScript 3的框架,用于构建富...

    matlabGUI读取Excel数据,matlabgui怎么导入excel数据,matlab

    当我们需要处理或分析Excel数据时,MATLAB GUI提供了一种直观的方法来导入、显示和操作这些数据。本文将详细介绍如何在MATLAB GUI中读取Excel数据并将其展示在表格控件中。 首先,我们需要了解MATLAB中用于读取...

    SuperMap Objects .NET导入excel数据

    本文将详细介绍如何利用SuperMap Objects .NET来导入Excel数据并生成点数据集。 首先,我们要了解.NET iObjects。iObjects是SuperMap公司提供的一系列面向对象的GIS接口,它包含了处理空间数据、地图显示、空间分析...

    批量导入Excel数据到数据库

    ### 批量导入Excel数据到数据库:关键技术与实践 在企业级应用开发中,数据迁移、数据整合或数据处理往往需要将Excel数据批量导入到数据库中。本文将深入解析一个具体的实现方法,该方法利用了.NET框架下的`...

    angular js 导入excel数据

    2.angular-cli.json更新引用路径 "apps": [ { "root": "src", "outDir": "dist", "scripts": [ "assets/xlsx/xlsx.full.min.js" ], } ], 3. *.component.ts引用 declare let XSX; @Component({ ...

    导入excel数据到数据库 .net上传解析excel

    在.NET框架中,导入Excel数据到数据库是一项常见的任务,它涉及到文件上传、Excel数据解析以及数据库操作。以下是对这一过程的详细阐述。 首先,我们需要理解.NET中的文件上传机制。这通常涉及用户通过Web表单或者...

    批量导入Excel数据,生成sql

    在IT行业中,批量导入Excel数据并生成SQL是一种常见的任务,特别是在数据分析、数据库管理以及系统集成等领域。这个过程涉及到了文件处理、数据解析、SQL语句的构造等多个技术环节。下面,我们将详细探讨这个主题。 ...

    C#Winform使用NPOI导入Excel数据

    以下是导入Excel数据的基本步骤: 1. **打开文件对话框**:使用`OpenFileDialog`控件,设置其属性,如Filter,使用户只能选择Excel文件(.xls或.xlsx)。 ```csharp OpenFileDialog openFileDialog = new ...

    C#将数据导入excel和Excel数据导入数据库

    这一过程通常涉及到两个主要步骤:读取Excel数据和与数据库进行交互。 首先,我们来看C#读取Excel数据的部分。在.NET框架中,可以使用多种库来实现这一功能,如NPOI、EPPlus或Microsoft.Office.Interop.Excel。NPOI...

Global site tag (gtag.js) - Google Analytics