临时,待整理
public byte[] createFAQDWord(String orgId, ArrayCollection oprIds, String begDate,
String endDate) throws Exception {
File file = File.createTempFile("createFAQDWord", "zip");
file.deleteOnExit();
//import org.apache.tools.zip.ZipOutputStream;
ZipOutputStream zout = new ZipOutputStream(new FileOutputStream(file));
zout.setEncoding("GBK");
BufferedOutputStream bos = new BufferedOutputStream(zout);
for (int j = 0; j < oprIds.size(); j++) {
String oprId = (String) oprIds.get(j);
List list = getFAQDList(orgId, oprId, begDate, endDate);
VDictSendFile vDictSendFile = super.getBean(BCommon.class).getDictSendFileByCode("BHFS", "FAQD");
// 将该模板转化为一个 CustomXWPFDocument对象
CustomXWPFDocument doc = new CustomXWPFDocument(vDictSendFile.getTemplate().getBinaryStream());
XWPFParagraph pFADate = doc.getParagraphs().get(1);
pFADate.setWordWrap(true);
pFADate.setAlignment(ParagraphAlignment.RIGHT);
XWPFRun rFADate = pFADate.createRun();
Map map = new HashMap();
map = this.getMaxAndMinDate(list);
rFADate.setText("分案日期" + map.get("max") + "至" + map.get("min"));
XWPFTable table = doc.getTables().get(0);
String oprName = "";
for (int i = 0; i < list.size(); i++) {
XWPFTableRow row = null;
VBcomWfPssq vBcomWfPssq = list.get(i);
AuthControl authControl = super.getBean(AuthControl.class);
VAcUser user = authControl.getUserInfoByUserId(vBcomWfPssq.getOprId());
oprName = user.getUserName();
row = table.insertNewTableRow(i + 1);
XWPFTableCell cell1 = row.createCell();
XWPFParagraph p1 = cell1.getParagraphs().get(0);
p1.setWordWrap(true);
p1.setAlignment(ParagraphAlignment.CENTER);
XWPFRun r1 = p1.createRun();
r1.setText(i + 1 + "");
XWPFTableCell cell2 = row.createCell();
XWPFParagraph p2 = cell2.getParagraphs().get(0);
p2.setWordWrap(true);
p2.setAlignment(ParagraphAlignment.CENTER);
XWPFRun r2 = p2.createRun();
r2.setText(vBcomWfPssq.getFlowTypeName() + vBcomWfPssq.getAppNum());
XWPFTableCell cell3 = row.createCell();
XWPFParagraph p3 = cell3.getParagraphs().get(0);
p3.setWordWrap(true);
p3.setAlignment(ParagraphAlignment.CENTER);
XWPFRun r3 = p3.createRun();
r3.setText(DateUtils.date2String(vBcomWfPssq.getAppDate(), "yyyy-MM-dd"));
XWPFTableCell cell4 = row.createCell();
XWPFParagraph p4 = cell4.getParagraphs().get(0);
p4.setWordWrap(true);
p4.setAlignment(ParagraphAlignment.CENTER);
XWPFRun r4 = p4.createRun();
r4.setText(vBcomWfPssq.getRegNum());
XWPFTableCell cell5 = row.createCell();
XWPFParagraph p5 = cell5.getParagraphs().get(0);
p5.setWordWrap(true);
p5.setAlignment(ParagraphAlignment.CENTER);
XWPFRun r5 = p5.createRun();
r5.setText(vBcomWfPssq.getIntlCls());
XWPFTableCell cell6 = row.createCell();
XWPFParagraph p6 = cell6.getParagraphs().get(0);
p6.setWordWrap(true);
p6.setAlignment(ParagraphAlignment.CENTER);
XWPFRun r6 = p6.createRun();
r6.setText(vBcomWfPssq.getTmName());
XWPFTableCell cell7 = row.createCell();
XWPFParagraph p7 = cell7.getParagraphs().get(0);
p7.setWordWrap(true);
p7.setAlignment(ParagraphAlignment.CENTER);
XWPFRun r7 = p7.createRun();
r7.setText(vBcomWfPssq.getAppCnName());
XWPFTableCell cell8 = row.createCell();
XWPFParagraph p8 = cell8.getParagraphs().get(0);
p8.setWordWrap(true);
p8.setAlignment(ParagraphAlignment.CENTER);
XWPFRun r8 = p8.createRun();
r8.setText(user.getUserName());
XWPFTableCell cell9 = row.createCell();
}
XWPFParagraph pCUser = doc.getParagraphs().get(2);
pCUser.setWordWrap(true);
pCUser.setAlignment(ParagraphAlignment.RIGHT);
XWPFRun rCUser = pCUser.createRun();
rCUser.setText(SessionUtils.getUserName());
XWPFParagraph pCDate = doc.getParagraphs().get(2);
pCDate.setWordWrap(true);
pCDate.setAlignment(ParagraphAlignment.RIGHT);
XWPFRun rCDate = pCDate.createRun();
rCDate.setText(DateUtils.date2String(new Date(), "yyyy-MM-dd"));
ByteArrayOutputStream out = new ByteArrayOutputStream();
doc.write(out);
zout.putNextEntry(new ZipEntry(oprName + ".docx"));
bos.write(out.toByteArray());
zout.closeEntry();
bos.flush();
out.close();
}
bos.close();
// zout.close();不可显示关闭,会报错
FileInputStream fi = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fi);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
byte[] bytes = new byte[1024 * 1024 * 10];// 缓冲字节数 8K
int read;
while ((read = bis.read(bytes)) > 0) {
bout.write(bytes, 0, read);
}
bout.close();
bis.close();
fi.close();
return bout.toByteArray();
}