导入excel数据,导出数据到excel
2015-08-15 16:28
281 查看
package com.jiemai.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import com.jiemai.supplier.dto.TimItem;
import com.jiemai.supplier.logic.ItemLogic;
import com.jmapp.oms.request.impl.CreateItemReq;
import com.jmapp.oms.response.DefaultResponse;
import com.jmapp.oms.vo.req.CreateItemVO;
import com.syndb.util.CurrencyUtil;
public class CreateItemTest {
public static void main(String[] args) {
ItemLogic logic = new ItemLogic();
// TODO Auto-generated method stub
//读取excel数据
jxl.Workbook rwb = null;
try{
//构建Workbook对象, 只读Workbook对象
//直接从本地文件创建Workbook
//从输入流创建Workbook
InputStream is = new FileInputStream("E:/4px-item.xls");
rwb = Workbook.getWorkbook(is);
//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
//Sheet的下标是从0开始
//获取第一张Sheet表
Sheet sheet = rwb.getSheet(0);
//获取Sheet表中所包含的总列数
int rsColumns = sheet.getColumns();
System.out.println("rsColumns="+rsColumns);
//获取Sheet表中所包含的总行数
int rsRows = sheet.getRows();
//封装excel里的数据成产品对象集合
List<CreateItemVO> createItemVOs = new ArrayList<CreateItemVO>();
//获取指定单元格的对象引用
for(int i=0;i<rsRows;i++){
Cell[] cells = sheet.getRow(i);
CreateItemVO createItemVO = new CreateItemVO();
for(int j=0;j<rsColumns;j++){
//第一列是sku
createItemVO.setSku(cells[0].getContents());
}
//把封装好的createItemVO对象添加到createItemVOs集合里
createItemVOs.add(createItemVO);
}
//根据sku查询TimItem封装成TimItem集合
List<TimItem> timItems = new ArrayList<TimItem>();
for(CreateItemVO createItem : createItemVOs) {
TimItem timItem = new TimItem();
//根据sku查询数据库里对应的数据
timItem = logic.queryBySku(createItem.getSku());
//把查询的TimItem对象加入 到timItems 集合里
timItems.add(timItem);
}
//post失败的对象封装起来
List<CreateItemVO> tempItemVOs = new ArrayList<CreateItemVO>();
for(TimItem item: timItems) {
//把从数据库查询到的集合对象TimItem迭代出来设置到CreateItemVO对象里
CreateItemVO supItem = new CreateItemVO();
if(item!=null) {
supItem.setSku(item.getImBarcode());
supItem.setItemName(item.getImName());
supItem.setCategoryCode(item.getIgId().toString());
supItem.setUnits("EA");
supItem.setUnitPrice(String.valueOf(CurrencyUtil.rmb2usd(Double.parseDouble(item.getImClass1()))));
supItem.setWeight(String.valueOf(item.getImGrossweight()));
supItem.setHeight(String.valueOf(item.getImHeight()));
supItem.setWidth(String.valueOf(item.getImWidth()));
supItem.setLength(String.valueOf(item.getImLength()));
supItem.setDeclare(item.getImDeclaredescription());
supItem.setDescription("");
supItem.setReferenceCode("");
supItem.setSpecification("");
//tempItemVOs.add(supItem);
}
//数据封装好之后再post到指定url
DefaultResponse resp = new CreateItemReq().post(supItem,DefaultResponse.class);
List<Map<String, Object>> list=resp.getData();
System.out.println(resp.getData().toString());
Map<String, Object> map=list.get(0);
System.out.println(map.get("ack"));
if(map.get("ack")=="N") {
tempItemVOs.add(supItem);
}
}
//导入post失败的对象到excel
int i = 0;
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("E:/5px-item.xls"));
//读取第一张工作表
jxl.write.WritableSheet ws = wwb.createSheet("TestSheet1",0);
for(CreateItemVO createItemVO : tempItemVOs) {
//第一个参数代表列,第二个参数代表行,第三个参数代表内容
Label label = new Label(0, i, createItemVO.getSku());
ws.addCell(label);
i++;
}
//往excel写入数据
wwb.write();
wwb.close();
}catch(Exception e){
e.printStackTrace();
}
finally{
//操作完成时,关闭对象,释放占用的内存空间
rwb.close();
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import com.jiemai.supplier.dto.TimItem;
import com.jiemai.supplier.logic.ItemLogic;
import com.jmapp.oms.request.impl.CreateItemReq;
import com.jmapp.oms.response.DefaultResponse;
import com.jmapp.oms.vo.req.CreateItemVO;
import com.syndb.util.CurrencyUtil;
public class CreateItemTest {
public static void main(String[] args) {
ItemLogic logic = new ItemLogic();
// TODO Auto-generated method stub
//读取excel数据
jxl.Workbook rwb = null;
try{
//构建Workbook对象, 只读Workbook对象
//直接从本地文件创建Workbook
//从输入流创建Workbook
InputStream is = new FileInputStream("E:/4px-item.xls");
rwb = Workbook.getWorkbook(is);
//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
//Sheet的下标是从0开始
//获取第一张Sheet表
Sheet sheet = rwb.getSheet(0);
//获取Sheet表中所包含的总列数
int rsColumns = sheet.getColumns();
System.out.println("rsColumns="+rsColumns);
//获取Sheet表中所包含的总行数
int rsRows = sheet.getRows();
//封装excel里的数据成产品对象集合
List<CreateItemVO> createItemVOs = new ArrayList<CreateItemVO>();
//获取指定单元格的对象引用
for(int i=0;i<rsRows;i++){
Cell[] cells = sheet.getRow(i);
CreateItemVO createItemVO = new CreateItemVO();
for(int j=0;j<rsColumns;j++){
//第一列是sku
createItemVO.setSku(cells[0].getContents());
}
//把封装好的createItemVO对象添加到createItemVOs集合里
createItemVOs.add(createItemVO);
}
//根据sku查询TimItem封装成TimItem集合
List<TimItem> timItems = new ArrayList<TimItem>();
for(CreateItemVO createItem : createItemVOs) {
TimItem timItem = new TimItem();
//根据sku查询数据库里对应的数据
timItem = logic.queryBySku(createItem.getSku());
//把查询的TimItem对象加入 到timItems 集合里
timItems.add(timItem);
}
//post失败的对象封装起来
List<CreateItemVO> tempItemVOs = new ArrayList<CreateItemVO>();
for(TimItem item: timItems) {
//把从数据库查询到的集合对象TimItem迭代出来设置到CreateItemVO对象里
CreateItemVO supItem = new CreateItemVO();
if(item!=null) {
supItem.setSku(item.getImBarcode());
supItem.setItemName(item.getImName());
supItem.setCategoryCode(item.getIgId().toString());
supItem.setUnits("EA");
supItem.setUnitPrice(String.valueOf(CurrencyUtil.rmb2usd(Double.parseDouble(item.getImClass1()))));
supItem.setWeight(String.valueOf(item.getImGrossweight()));
supItem.setHeight(String.valueOf(item.getImHeight()));
supItem.setWidth(String.valueOf(item.getImWidth()));
supItem.setLength(String.valueOf(item.getImLength()));
supItem.setDeclare(item.getImDeclaredescription());
supItem.setDescription("");
supItem.setReferenceCode("");
supItem.setSpecification("");
//tempItemVOs.add(supItem);
}
//数据封装好之后再post到指定url
DefaultResponse resp = new CreateItemReq().post(supItem,DefaultResponse.class);
List<Map<String, Object>> list=resp.getData();
System.out.println(resp.getData().toString());
Map<String, Object> map=list.get(0);
System.out.println(map.get("ack"));
if(map.get("ack")=="N") {
tempItemVOs.add(supItem);
}
}
//导入post失败的对象到excel
int i = 0;
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("E:/5px-item.xls"));
//读取第一张工作表
jxl.write.WritableSheet ws = wwb.createSheet("TestSheet1",0);
for(CreateItemVO createItemVO : tempItemVOs) {
//第一个参数代表列,第二个参数代表行,第三个参数代表内容
Label label = new Label(0, i, createItemVO.getSku());
ws.addCell(label);
i++;
}
//往excel写入数据
wwb.write();
wwb.close();
}catch(Exception e){
e.printStackTrace();
}
finally{
//操作完成时,关闭对象,释放占用的内存空间
rwb.close();
}
}
}