跪求jxl合成多个sheet的程序,大师们,给我一个吧,我郁闷啊
我写了个,可出现数据串的情况,比如,四个单excel单sheet,合成一个excel四个sheet ,sheet1和数据sheet4出现错位,不明白,大师,请指点
package com.test;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;import com.domain.ExcelMergeParamVo;public class ExcelEmrger { public static void main(String[] args) {
Map<String, String> subFiles = new HashMap<String, String>();
/*subFiles.put("rate_summary.xls", "rate_summary");
subFiles.put("gsm_rate.xls", "gsm_rate");
subFiles.put("gprs_rate.xls", "gprs_rate");
subFiles.put("sms_rate.xls", "sms_rate");
subFiles.put("ss_rate.xls", "ss_rate");*/
subFiles.put("custuserstat.xls", "custuserstat");
subFiles.put("custuserstat1.xls", "custuserstat1");
ExcelMergeParamVo paramVo = new ExcelMergeParamVo();
paramVo.setFileName("emergerExcel.xls");
paramVo.setSubFiles(subFiles);
paramVo.setDirPath("D:\\report_path\\");
String message = doEmergerExcel(paramVo);
System.out.println(message); } @SuppressWarnings("unchecked")
public static String doEmergerExcel(ExcelMergeParamVo paramVo) {
String message = "合成成功";// 定义返回消息
WritableWorkbook wwb = null;
Map<String, String> subFiles = paramVo.getSubFiles();
if (subFiles.size() < 1) {
message = "参数设置不正确";
return message;
}
Iterator keyValuePairs = subFiles.entrySet().iterator();// 文件名
try {
wwb = Workbook.createWorkbook(new File(paramVo.getDirPath()
+ paramVo.getFileName()));
while (keyValuePairs.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry) keyValuePairs.next();
String key = entry.getKey();
String value = entry.getValue();
InputStream is = new FileInputStream(paramVo.getDirPath() + key);
Workbook rwb = Workbook.getWorkbook(is);
Sheet st = rwb.getSheet(0);
wwb.importSheet(value, 0, st);
WritableSheet sheet = wwb.getSheet(0);
for (int row = 0; row < st.getRows(); row++) {
for (int col = 0; col < st.getColumns(); col++) {
Label label = new Label(col, row, st.getCell(col, row)
.getContents());
if (st.getCell(col, row).getCellFormat() != null) {
WritableCellFormat format = new WritableCellFormat(
st.getCell(col, row).getCellFormat());
label.setCellFormat(format);
sheet.addCell(label);
}
}
}
rwb.close();
}
wwb.write();
wwb.close();
} catch (Exception e) {
e.printStackTrace();
message = "合成失败";
return message;
}
return message;
}
}