⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xlsblockreadertest.java

📁 一个java生成自动生成Excel
💻 JAVA
字号:
package net.sf.jxls.reader;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import junit.framework.TestCase;
import net.sf.jxls.reader.sample.Department;
import net.sf.jxls.reader.sample.Employee;

import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.LazyDynaBean;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

/**
 * @author Leonid Vysochyn
 */
public class XLSBlockReaderTest extends TestCase {
    public static final String dataXLS = "/templates/departmentData.xls";


    protected void setUp() throws Exception {
        super.setUp();
//        ConvertUtils.register( new SqlDateConverter(null), java.util.Date.class);
    }

    public void testRead() throws IOException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, InstantiationException, ParseException {
        InputStream inputXLS = new BufferedInputStream(getClass().getResourceAsStream(dataXLS));
        POIFSFileSystem fsInput = new POIFSFileSystem(inputXLS);
        HSSFWorkbook hssfInputWorkbook = new HSSFWorkbook(fsInput);
        HSSFSheet sheet = hssfInputWorkbook.getSheetAt( 0 );
        List mappings = new ArrayList();
        Department departmentBean = new Department();
        Employee chief = new Employee();
        Map beans = new HashMap();
        beans.put("department", departmentBean);
        beans.put("chief", chief);

        mappings.add( new BeanCellMapping(0, (short) 1, "department.name") );
        mappings.add( new BeanCellMapping("A4", "chief.name"));
        mappings.add( new BeanCellMapping("B4", "chief.age"));
        mappings.add( new BeanCellMapping("C4", "chief.birthDate"));
        mappings.add( new BeanCellMapping("D4", "chief.payment"));
        mappings.add( new BeanCellMapping("E4", "chief.bonus"));

        XLSBlockReader reader = new SimpleBlockReaderImpl(0, 6, mappings);
        XLSRowCursor cursor = new XLSRowCursorImpl( sheet );
        cursor.setSheetName( hssfInputWorkbook.getSheetName(0));
        reader.read( cursor, beans );
        assertEquals( "IT", departmentBean.getName() );
        assertEquals( "Maxim", chief.getName() );
        assertEquals( new Integer(30), chief.getAge() );
        assertEquals( new Double( 3000.0), chief.getPayment() );
        assertEquals( new Double(0.25), chief.getBonus() );

        SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
        Date date = format.parse("12/20/1976");
        assertEquals("Date value read error", date, chief.getBirthDate());

        mappings.clear();
        DynaBean dynaBean = new LazyDynaBean();
        beans.clear();
        beans.put("total", dynaBean);
        reader.setStartRow(8);
        mappings.add( new BeanCellMapping(9, (short) 3, "total", "totalPayment"));
        cursor.setCurrentRowNum( 12 );
        reader.read( cursor, beans );
        assertEquals( new Integer(10100).toString(), dynaBean.get( "totalPayment" ));
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -