📄 xlsblockreadertest.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 + -