EXCEL转JAVA BEAN
pom.xml回入以下包:
<
dependency
>
< groupId >net.sf.jxls </ groupId >
< artifactId >jxls-core </ artifactId >
</ dependency >
< dependency >
< groupId >net.sf.jxls </ groupId >
< artifactId >jxls-reader </ artifactId >
</ dependency >
< dependency >
< groupId >net.sf.jxls </ groupId >
< artifactId >jxls-examples </ artifactId >
</ dependency >
< groupId >net.sf.jxls </ groupId >
< artifactId >jxls-core </ artifactId >
</ dependency >
< dependency >
< groupId >net.sf.jxls </ groupId >
< artifactId >jxls-reader </ artifactId >
</ dependency >
< dependency >
< groupId >net.sf.jxls </ groupId >
< artifactId >jxls-examples </ artifactId >
</ dependency >
转换的配置文件:
<
workbook
>
< worksheet name ="Sheet1" >
< section startRow ="0" endRow ="0" />
< loop startRow ="1" endRow ="1" items ="result" var ="app" varType ="n.app.valueobject.App" >
< section startRow ="1" endRow ="1" >
< mapping row ="1" col ="0" >app.title </ mapping >
< mapping row ="1" col ="1" >app.categoryId </ mapping >
< mapping row ="1" col ="2" >app.updateContent </ mapping >
< mapping row ="1" col ="3" >app.rank </ mapping >
< mapping row ="1" col ="4" >app.installedQty </ mapping >
< mapping row ="1" col ="5" >app.installedType </ mapping >
< mapping row ="1" col ="6" >app.discuss </ mapping >
< mapping row ="1" col ="7" >app.summary </ mapping >
< mapping row ="1" col ="8" >app.deviceTypes </ mapping >
< mapping row ="1" col ="9" >app.description </ mapping >
< mapping row ="1" col ="10" >app.newFeatures </ mapping >
< mapping row ="1" col ="11" >app.shortRecommend </ mapping >
< mapping row ="1" col ="12" >app.appUrl </ mapping >
</ section >
< loopbreakcondition >
< rowcheck offset ="0" >
< cellcheck offset ="0" />
</ rowcheck >
</ loopbreakcondition >
</ loop >
</ worksheet >
</ workbook >
< worksheet name ="Sheet1" >
< section startRow ="0" endRow ="0" />
< loop startRow ="1" endRow ="1" items ="result" var ="app" varType ="n.app.valueobject.App" >
< section startRow ="1" endRow ="1" >
< mapping row ="1" col ="0" >app.title </ mapping >
< mapping row ="1" col ="1" >app.categoryId </ mapping >
< mapping row ="1" col ="2" >app.updateContent </ mapping >
< mapping row ="1" col ="3" >app.rank </ mapping >
< mapping row ="1" col ="4" >app.installedQty </ mapping >
< mapping row ="1" col ="5" >app.installedType </ mapping >
< mapping row ="1" col ="6" >app.discuss </ mapping >
< mapping row ="1" col ="7" >app.summary </ mapping >
< mapping row ="1" col ="8" >app.deviceTypes </ mapping >
< mapping row ="1" col ="9" >app.description </ mapping >
< mapping row ="1" col ="10" >app.newFeatures </ mapping >
< mapping row ="1" col ="11" >app.shortRecommend </ mapping >
< mapping row ="1" col ="12" >app.appUrl </ mapping >
</ section >
< loopbreakcondition >
< rowcheck offset ="0" >
< cellcheck offset ="0" />
</ rowcheck >
</ loopbreakcondition >
</ loop >
</ worksheet >
</ workbook >
JAVA代码:
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.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jxls.reader.ReaderBuilder;
import net.sf.jxls.reader.XLSReader;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
import application.app.valueobject.App;
public class ExcelUtil<T> {
private static Logger logger = LoggerFactory.getLogger(ExcelUtil. class);
public List<T> parseExcelFileToBeans(InputStream xlsFileInputStream, InputStream jxlsConfigInputStream) throws IOException, SAXException, InvalidFormatException {
List<T> result = new ArrayList<T>();
Map<String, Object> beans = new HashMap<String, Object>();
beans.put("result", result);
InputStream inputStream = null;
try {
XLSReader xlsReader = ReaderBuilder.buildFromXML(jxlsConfigInputStream);
inputStream = new BufferedInputStream(xlsFileInputStream);
xlsReader.read(inputStream, beans);
} catch (IOException e) {
logger.error(e.getMessage(), e);
throw e;
} catch (SAXException e) {
logger.error(e.getMessage(), e);
throw e;
} catch (InvalidFormatException e) {
logger.error(e.getMessage(), e);
throw e;
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (Exception e) {
}
}
}
return result;
}
public static void main(String[] args) throws Exception {
String path = "D:/DATA/TESTING-FILE/EXCEL";
path = System.getProperty("user.home");
ExcelUtil<App> util = new ExcelUtil<App>();
String excelFilePath = path + File.separator + "appData.xls";
InputStream configInputStream =
ExcelUtil. class.getResourceAsStream("/excel/template/config/app_config.xml");
InputStream xlsFileInputStream = new FileInputStream(excelFilePath);
List<App> appList = util.parseExcelFileToBeans(xlsFileInputStream, configInputStream);
for (App app : appList) {
System.out.println(app.toString());
}
/* String [] args2 = {""};
GroupingSample.main(args2); */
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jxls.reader.ReaderBuilder;
import net.sf.jxls.reader.XLSReader;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
import application.app.valueobject.App;
public class ExcelUtil<T> {
private static Logger logger = LoggerFactory.getLogger(ExcelUtil. class);
public List<T> parseExcelFileToBeans(InputStream xlsFileInputStream, InputStream jxlsConfigInputStream) throws IOException, SAXException, InvalidFormatException {
List<T> result = new ArrayList<T>();
Map<String, Object> beans = new HashMap<String, Object>();
beans.put("result", result);
InputStream inputStream = null;
try {
XLSReader xlsReader = ReaderBuilder.buildFromXML(jxlsConfigInputStream);
inputStream = new BufferedInputStream(xlsFileInputStream);
xlsReader.read(inputStream, beans);
} catch (IOException e) {
logger.error(e.getMessage(), e);
throw e;
} catch (SAXException e) {
logger.error(e.getMessage(), e);
throw e;
} catch (InvalidFormatException e) {
logger.error(e.getMessage(), e);
throw e;
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (Exception e) {
}
}
}
return result;
}
public static void main(String[] args) throws Exception {
String path = "D:/DATA/TESTING-FILE/EXCEL";
path = System.getProperty("user.home");
ExcelUtil<App> util = new ExcelUtil<App>();
String excelFilePath = path + File.separator + "appData.xls";
InputStream configInputStream =
ExcelUtil. class.getResourceAsStream("/excel/template/config/app_config.xml");
InputStream xlsFileInputStream = new FileInputStream(excelFilePath);
List<App> appList = util.parseExcelFileToBeans(xlsFileInputStream, configInputStream);
for (App app : appList) {
System.out.println(app.toString());
}
/* String [] args2 = {""};
GroupingSample.main(args2); */
}
}
http://www.yihaomen.com/article/java/530.htm