Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jxls将excel文件读入javabean_Java_Jxls - Fatal编程技术网

使用jxls将excel文件读入javabean

使用jxls将excel文件读入javabean,java,jxls,Java,Jxls,我正在尝试使用jXLS库读取excel文件,我想使用hashmaps使其动态化,但我被困在那里了。以下是相关的课程 请帮助使用hashmaps而不是ArrayList JXLSParser package com.metricstream.service.xlsparser; 导入java.io.InputStream; 导入java.util.ArrayList; 导入java.util.HashMap; 导入java.util.List; 导入java.util.Map; 导入net.sf.

我正在尝试使用jXLS库读取excel文件,我想使用hashmaps使其动态化,但我被困在那里了。以下是相关的课程

请帮助使用hashmaps而不是ArrayList

JXLSParser
package com.metricstream.service.xlsparser;
导入java.io.InputStream;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入net.sf.jxls.reader.ReaderBuilder;
导入net.sf.jxls.reader.XLSReadStatus;
导入net.sf.jxls.reader.XLSReader;
导入org.apache.poi.openxml4j.exceptions.InvalidFormatException;
导入org.xml.sax.SAXException;
公共类JXLSParser{
私有静态最终字符串CHAR\u S=“S”;
公共列表解析(InputStream xmlStream、InputStream xlsStream、,
类tClass)抛出AppException{
List tList=new ArrayList();
XLSReader mainReader=null;
试一试{
mainReader=ReaderBuilder.buildFromXML(xmlStream);
}捕获(IOException IOException){
抛出新的AppException(ioException);
}捕获(SAXException SAXException){
抛出新的AppException(saxException);
}
Map bean=新的HashMap();
put(tClass.getSimpleName().toLowerCase().concat(CHAR_S),tList);
XLSReadStatus readStatus=null;
试一试{
readStatus=mainReader.read(xlsStream,bean);
}捕获(InvalidFormatException InvalidFormatException){
抛出新的AppException(invalidFormatException);
}捕获(IOException IOException){
抛出新的AppException(ioException);
}
if(readStatus.isStatusOK()){
System.out.println(“读取状态:ok”);
}否则{
抛出新的AppException(“xls无法正确读取”);
}
返回列表;
}
}
主要
package com.metricstream.service.xlsparser;
导入java.io.BufferedInputStream;
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.InputStream;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入org.apache.poi.ss.formula.functions.T;
导入com.metricstream.exercise.employee.employee;
公开课练习{
公共静态void main(字符串args[])引发AppException{
String xmlConfig=“F:\\workspace/XLSReader/XLSReader/XLSReader/employee.xml”;
String dataXLS=“F:\\workspace/XLSReader/XLSReader/XLSReader/employee.xlsx”;
JXLSParser employeeParser=新的JXLSParser();
InputStream inputXML;
试一试{
inputXML=new BufferedInputStream(new FileInputStream(xmlConfig));
InputStream inputXLS=新的BufferedInputStream(新文件InputStream(
dataXLS);
List employee=employeeParser.parseXLS(inputXML,
输入xls,Employee.class);
//Map Map=newhashmap(employee.size());
/*对于(员工emp:员工)
{
put(emp.getKey(),emp.getValue());
系统输出打印项次(emp);
}*/
系统输出打印项次(员工);
}catch(filenotfounde异常){
抛出新的AppException(e);
}
}
}
Excel文件内容


简单的名字
simple.lastName
简单的年龄
simple.des
简单的薪水
尝试将“varType”属性设置为“java.util.HashMap”,并将“mapping”元素的“type”属性设置为“java.util.String”或其他属性。例如:

<?xml version="1.0" encoding="utf-8"?>
<workbook>
    <worksheet name="Sheet1">
        <section startRow="0" endRow="0">
        </section>
        <loop startRow="1" endRow="1" items="rows" var="row" varType="java.util.HashMap">
            <section startRow="1" endRow="1">
                <mapping row="1" col="0" type="java.lang.String">row.id</mapping>
                <mapping row="1" col="1" type="java.lang.String">row.name</mapping>
                <mapping row="1" col="2" type="java.lang.String">row.code</mapping>
            </section>
            <loopbreakcondition>
                <rowcheck offset="0">
                    <cellcheck offset="0">Summary</cellcheck>
                </rowcheck>
            </loopbreakcondition>
        </loop>
    </worksheet>
</workbook>

row.id
row.name
行代码
总结

这是我的工作。Jxls阅读器版本为2.4.0

请提供答案的上下文和解释,谢谢。
     package com.metricstream.service.xlsparser;

     import java.io.BufferedInputStream;
     import java.io.FileInputStream;
     import java.io.FileNotFoundException;
     import java.io.InputStream;
     import java.util.HashMap;
      import java.util.List;
     import java.util.Map;

     import org.apache.poi.ss.formula.functions.T;

     import com.metricstream.exercise.employee.Employee;

    public class Exercise {
       public static void main(String args[]) throws AppException {
    String xmlConfig = "F:\\workspace/XLSReader/XLSReader/XLSReader/employee.xml";
    String dataXLS = "F:\\workspace/XLSReader/XLSReader/XLSReader/employee.xlsx";
    JXLSParser employeeParser = new JXLSParser();
    InputStream inputXML;
    try {
        inputXML = new BufferedInputStream(new FileInputStream(xmlConfig));
        InputStream inputXLS = new BufferedInputStream(new FileInputStream(
                dataXLS));
        List<Employee> employee = employeeParser.parseXLS(inputXML,
                inputXLS, Employee.class);
    //  Map<String,Object> map = new HashMap<String,Object>(employee.size());
    /*  for( Employee emp: employee)
        {
            map.put(emp.getKey(),emp.getValue());
            System.out.println(emp);
        }*/

        System.out.println(employee);
    } catch (FileNotFoundException e) {
        throw new AppException(e);
    }

}
 }
<?xml version="1.0" encoding="ISO-8859-1"?>
<workbook>
    <worksheet name="Sheet1">
        <loop startRow="1" endRow="1" items="simples" var="simple"
            varType="java.util.HashMap">

            <section startRow="1" endRow="1">
                <mapping row="2" col="0">simple.firstName</mapping>
                <mapping row="2" col="1">simple.lastName</mapping>
                <mapping row="2" col="2">simple.age</mapping>
                <mapping row="2" col="3">simple.des</mapping>
                <mapping row="2" col="4">simple.salary</mapping> 
            </section>
            <loopbreakcondition>
                <rowcheck offset="0">
                    <cellcheck offset="0" />
                </rowcheck>
            </loopbreakcondition>
        </loop>
    </worksheet>
</workbook>
<?xml version="1.0" encoding="utf-8"?>
<workbook>
    <worksheet name="Sheet1">
        <section startRow="0" endRow="0">
        </section>
        <loop startRow="1" endRow="1" items="rows" var="row" varType="java.util.HashMap">
            <section startRow="1" endRow="1">
                <mapping row="1" col="0" type="java.lang.String">row.id</mapping>
                <mapping row="1" col="1" type="java.lang.String">row.name</mapping>
                <mapping row="1" col="2" type="java.lang.String">row.code</mapping>
            </section>
            <loopbreakcondition>
                <rowcheck offset="0">
                    <cellcheck offset="0">Summary</cellcheck>
                </rowcheck>
            </loopbreakcondition>
        </loop>
    </worksheet>
</workbook>