修改导入功能

1、修改导入方法

//导入excel

@RequestMapping("/page/importExcel")

public  void importExcel(ModelAndView mv, HttpServletRequest request,HttpServletResponse response) throws Exception {

init(request);

mv.setViewName("/managePlatfrom");

String filePath = "";

try {

filePath = FileOperateUtil.upload(mv,request);

} catch (Exception e) {

}

if (!filePath.equals("")) {

//获取字段值

HashMap<String, String> map = ExcelHelper.readProperties(new File(filePath));

PxeConfigFileContent pxeConfigFileContent= new PxeConfigFileContent();

//是用反射,将值放进去

Class FileContent =pxeConfigFileContent.getClass();

Field[]  Fields = FileContent.getDeclaredFields();

for (String key : map.keySet()) {

Field field = FileContent.getDeclaredField(key);

field.setAccessible(true);

if(field.getType().getName().equals("int")){

field.set(pxeConfigFileContent,(int)Double.parseDouble(map.get(key)));

continue;

}

if(field.getType().getName().equals("cn.com.hikvision.www.datacenter.pxe_server.wsdl.PxeRaidCardStatus")){

continue;

}

if(field.getType().getName().equals("cn.com.hikvision.www.datacenter.pxe_server.wsdl.PxeSFPCardStatus")){

continue;

}

else{

field.set(pxeConfigFileContent,map.get(key));

continue;

}

}

String str = JSONObject.toJSONString(pxeConfigFileContent);

JSONObject json = JSONObject.parseObject(str);

responseAjax(response, json);

}

}

2、增加读取cfg方法

package com.hkwx.manager;

/**

* Jun 25, 2012

*/

import static org.junit.Assert.assertNotNull;

import static org.junit.Assert.fail;

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.HashMap;

import java.util.List;

import java.util.Properties;

import org.apache.commons.io.FilenameUtils;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

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

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

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

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

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

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

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

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**

* Excel组件

*

* @author Snowolf

* @version 1.0

* @since 1.0

*/

public abstract class ExcelHelper {

/**

* Excel 2003

*/

private final static String XLS = "xls";

/**

* Excel 2007

*/

private final static String XLSX = "xlsx";

/**

* 分隔符

*/

private final static String SEPARATOR = "|";

/**

* 由Excel文件的Sheet导出至List

*

* @param file

* @param sheetNum

* @return

*/

public static List<String> exportListFromExcel(File file, int sheetNum)

throws IOException {

return exportListFromExcel(new FileInputStream(file),

FilenameUtils.getExtension(file.getName()), sheetNum);

}

/**

* 由Excel流的Sheet导出至List

*

* @param is

* @param extensionName

* @param sheetNum

* @return

* @throws IOException

*/

public static List<String> exportListFromExcel(InputStream is,

String extensionName, int sheetNum) throws IOException {

Workbook workbook = null;

if (extensionName.toLowerCase().equals(XLS)) {

workbook = new HSSFWorkbook(is);

} else if (extensionName.toLowerCase().equals(XLSX)) {

workbook = new XSSFWorkbook(is);

}

return exportListFromExcel(workbook, sheetNum);

}

/**

* 由指定的Sheet导出至List

*

* @param workbook

* @param sheetNum

* @return

* @throws IOException

*/

private static List<String> exportListFromExcel(Workbook workbook,

int sheetNum) {

Sheet sheet = workbook.getSheetAt(sheetNum);

// 解析公式结果

FormulaEvaluator evaluator = workbook.getCreationHelper()

.createFormulaEvaluator();

List<String> list = new ArrayList<String>();

int minRowIx = sheet.getFirstRowNum();

int maxRowIx = sheet.getLastRowNum();

for (int rowIx = minRowIx; rowIx <= maxRowIx; rowIx++) {

Row row = sheet.getRow(rowIx);

StringBuilder sb = new StringBuilder();

short minColIx = row.getFirstCellNum();

short maxColIx = row.getLastCellNum();

for (short colIx = minColIx; colIx <= maxColIx; colIx++) {

Cell cell = row.getCell(new Integer(colIx));

CellValue cellValue = evaluator.evaluate(cell);

if (cellValue == null) {

continue;

}

// 经过公式解析,最后只存在Boolean、Numeric和String三种数据类型,此外就是Error了

// 其余数据类型,根据官方文档,完全可以忽略http://poi.apache.org/spreadsheet/eval.html

switch (cellValue.getCellType()) {

case Cell.CELL_TYPE_BOOLEAN:

sb.append(SEPARATOR + cellValue.getBooleanValue());

break;

case Cell.CELL_TYPE_NUMERIC:

// 这里的日期类型会被转换为数字类型,需要判别后区分处理

if (DateUtil.isCellDateFormatted(cell)) {

sb.append(SEPARATOR + cell.getDateCellValue());

} else {

sb.append(SEPARATOR + cellValue.getNumberValue());

}

break;

case Cell.CELL_TYPE_STRING:

sb.append(SEPARATOR + cellValue.getStringValue());

break;

case Cell.CELL_TYPE_FORMULA:

break;

case Cell.CELL_TYPE_BLANK:

break;

case Cell.CELL_TYPE_ERROR:

break;

default:

break;

}

}

list.add(sb.toString());

}

return list;

}

//读取cfg的全部信息

public HashMap<String, String>  readProperties(File file) {

Properties props = new Properties();

HashMap<String, String>  map = new HashMap<String, String>();

try {

InputStream in = new BufferedInputStream (new FileInputStream(file));

props.load(in);

Enumeration en = props.propertyNames();

while (en.hasMoreElements()) {

String key = (String) en.nextElement();

String Property = props.getProperty (key);

map.put(key, Property);

System.out.println(key+Property);

}

} catch (Exception e) {

e.printStackTrace();

}

return map;

}

public static void main(String[] args) {

String path = "E:\\excel.xls";

List<String> list = null;

HashMap<String, String> map = new HashMap<String, String>();

try {

list = ExcelHelper.exportListFromExcel(new File(path), 0);

for (int i = 0; i < list.size(); i++) {

String temp[] = list.get(i).split("\\|");

map.put(temp[1],temp[2]);

}

} catch (IOException e) {

}

}

}

时间: 2024-10-10 14:25:08

修改导入功能的相关文章

Solr定时导入功能实现

需要实现Solr定时导入功能的话,我们可以通过使用Solr自身所集成的dataimportscheduler调度器实现 下载对应的jar包,下载地址https://code.google.com/archive/p/solr-dataimport-scheduler/downloads 通过WinRAR打开jar包我们发现里面有一个名叫dataimport.properties的配置文件 ################################################# # #

017 区域导入功能 - bos

一.jQuery的OCUpload 1.OCUpload(One Click Upload) <script src="${pageContext.request.contextPath}/js/jquery.ocupload-1.1.2.js"></script> 2.传统文件上传: <1>页面要有form表单,action为提交地址,method="post",注意enctype="multipart/form-da

xadmin引入django-import-export导入功能

一.安装 由于xadmin自带的包里面已经包含了django-import-export 所以不用再pip install django-import-export了 但是xadmin管理后台只有导出按钮 没有导入按钮 所以本次引入了导入功能 二.配置文件 demo/settings.py: import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...)BASE_DIR = os.path.dir

Magento 对csv表格的导入功能 高级自定义部分!

magento自己带有导入导出功能 后台system-->import/export-->Advanced Profiles 进入后点击add new profiles 就可以新建一个规则了 Profile Name *是名字 Actions XML *是对应的参数 譬如例子: <action type="dataflow/convert_adapter_io" method="load"> <var name="type&q

OBPS开发管理平台-使用模板开发导入功能

和之前讲的一样,我们讲过代码就知道了是怎么生成的,所以这个导入功能也是一样的. 第一步: 我们从vbscript 开始调用 '说明:导出模板Private Sub ExportTemp()    Call ExportExcelTemplate("IG0050", "防腐管检查信息表", frmHtmlData.UID.value)End Sub'说明:导入数据Private Sub ImportData3()    dim ls_para    ls_para=

026医疗项目-模块二:药品目录的导入导出-导入功能的Service的编写

这个导入功能要实现的效果是: 思路是: 因为我们最后是在Action层中调用的HxlsRead工具,这个工具传入的就是我们要实现的上一篇文章说到的实现了HxlsOptRowsInterface接口的类.所以我们的Server层的类直接去继承HxlsOptRowsInterface接口.然后把这个Service传入到Action中HxlsRead工具中,的这篇文章说的就是Service 层: 代码如下: package yycg.business.service.impl; import java

FileSystemObject组件新建读取添加修改删除功能实例

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>FileSystemObject组件应该实例</title> </head> <

从格式编辑器修改限制功能点看目前项目质量

从格式编辑器修改限制功能点看目前项目质量 关于开发质量: 1 每当测试新模块时, 最常见的bug , 是 走流程走不通 ( 服务没起? 数据对接时没对接好,代码没提交等等之类的问题,  导致进入新模块新功能时界面数据错误,加载不出来, 基本功能没实现等等严重影响测试后续进度的bug).  所以因考虑每当测试新模块时,安排一个人去简单点点功能, 找出走不通流程的bug, 让开发修复. 2 由于目前开发只是对自己开发的模块负责,对整个系统没有一个整体的认识. 当有不同模块联动的功能时, 出现的bug

解析大型.NET ERP系统 设计通用Microsoft Excel导入功能

做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到数据库表中.然而一直是在做重复工作,写过不计其数的Excel导入程序,每次只是满足于问题解决,后来终于找到一个方法,实现通用的Excel数据导入. 设计通用的Excel导入功能,第一个实现要求是不能依赖Excel,客户的电脑或服务器很有可能没有安装Excel,所以微软的Office Interop一