docx4j操作word(2)

2019-08-20 19:58

Map.Entrypairs = it.next(); if (partsMap.get(pairs.getKey()) instanceofWorksheetPart) { WorksheetPartwsp = (WorksheetPart) partsMap.get(pairs.getKey()); Listrows = wsp.getJaxbElement().getSheetData().getRow(); for (Row row :rows) { Listcells = row.getC(); for (Cell cell :cells) { if (cell.getR().equals(\) &&cell.getV() != null) { System.out.println(\ + cell.getV()); // change the B2 cell value cell.setT(STCellType.N); cell.setV(\); } elseif (cell.getR().equals(\) &&cell.getV() != null) { System.out.println(\ + cell.getV()); // Change the B3 cell value cell.setT(STCellType.N); cell.setV(\); } } } } } ByteArrayOutputStreambaos = newByteArrayOutputStream(); SaveToZipFilesaver = newSaveToZipFile(spreadSheet); saver.save(baos); epp.setBinaryData(baos.toByteArray()); wordMLPackage.save(new File(\)); } privatestaticvoid _renderCTBarChart(CTBarChartchart, List>data, ListstrName, ListtxList) { Listlist = chart.getSer(); intii = 0; while (data.size() >list.size()) { CTBarSerser = newCTBarSer(); CTUnsignedIntindex = newCTUnsignedInt(); index.setVal(list.size()); CTSerTxtx = newCTSerTx(); CTStrRefcTStrReftx = newCTStrRef(); cTStrReftx.setF(\); cTStrReftx.setExtLst(newCTExtensionList()); cTStrReftx.setStrCache(newCTStrData()); tx.setStrRef(cTStrReftx); ser.setTx(tx); CTNumDataSourceCTNumDataSource = newCTNumDataSource(); CTNumRefCTNumRef = newCTNumRef(); CTNumRef.setF(\); CTNumRef.setExtLst(newCTExtensionList()); CTNumRef.setNumCache(newCTNumData()); CTNumDataSource.setNumRef(CTNumRef); // CTNumDataSource ser.setVal(CTNumDataSource); // ser.s CTAxDataSourceCTAxDataSource = list.get(ii).getCat(); ser.setCat(CTAxDataSource); ser.setIdx(index); ser.setOrder(index); ser.setInvertIfNegative(list.get(ii).getInvertIfNegative()); ser.setSpPr(list.get(ii).getSpPr()); list.add(ser); ii++; } for (intj = 0; jctNumVals = list.get(j).getVal().getNumRef().getNumCache().getPt(); // 横坐标 ListctStrVals = list.get(j).getCat().getStrRef().getStrCache().getPt(); // ListtxStrVals = list.get(j).getTx().getStrRef().getStrCache().getPt(); ctNumVals.clear(); ctStrVals.clear(); while (data.get(j).size() >ctNumVals.size()) { CTNumValnumVal = newCTNumVal(); numVal.setIdx(ctNumVals.size()); ctNumVals.add(ctNumVals.size(), numVal); } while (strName.size() >ctStrVals.size()) { CTStrValstrVal = newCTStrVal(); strVal.setIdx(ctStrVals.size()); ctStrVals.add(ctStrVals.size(), strVal); } if (txStrVals.size() < 1) { CTStrValstrVal = newCTStrVal(); strVal.setIdx(txStrVals.size()); txStrVals.add(txStrVals.size(), strVal); } txStrVals.get(0).setV(txList.get(j)); for (inti = 0; idata, Listname) { Listlist = chart.getSer(); for (intj = 0; jctNumVals = list.get(j).getVal().getNumRef().getNumCache().getPt(); ListctStrVals = list.get(j).getCat().getStrRef().getStrCache().getPt(); ctNumVals.clear(); ctStrVals.clear(); while (data.size() >ctNumVals.size()) { CTNumValnumVal = newCTNumVal(); } } } numVal.setIdx(ctNumVals.size()); ctNumVals.add(ctNumVals.size(), numVal); } while (data.size() >ctStrVals.size()) { CTStrValstrVal = newCTStrVal(); strVal.setIdx(ctStrVals.size()); ctStrVals.add(ctStrVals.size(), strVal); } for (inti = 0; i

2.4. 插入图片

可以使用标签的形式插入图片。通过书签找到要插入的位置,然后按照下面方法进行插入。Byte[]内为图片的内容。

publicclassWordImageDataRenderimplementsIWordReportDataRender { publicvoidrender(ReportDatadata, ItemConsumerconsumer, ObjectFactoryfactory, WordprocessingMLPackagewordMLPackage) throws Exception { if(!(datainstanceofImageData)) { return; } ImageDataimageData = (ImageData) data; byte[] bytes = imageData.getBody(); String filenameHint = null; String altText = null; intid1 = 0; intid2 = 1; R p3 = newImage(wordMLPackage, factory, bytes, filenameHint, altText, id1, id2); consumer.accept(p3); return; } privatestatic R newImage(WordprocessingMLPackagewordMLPackage, ObjectFactoryfactory, byte[] bytes, String filenameHint, String altText, intid1, intid2) throws Exception { BinaryPartAbstractImageimagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes); Inline inline = imagePart.createImageInline(filenameHint, altText, id1, id2, false); // Now add the inline in w:p/w:r/w:drawing R run = factory.createR(); Drawing drawing = factory.createDrawing(); run.getContent().add(drawing); drawing.getAnchorOrInline().add(inline); returnrun; } }

3. 文档的一些操作

3.1. 合并word

合并word,使用企业版的jar,企业版需要付费,不然在合并的时候会出现一个黄色的一段话,可以在合并之后,在遍历word去掉就可以了。

{ publicstaticWordprocessingMLPackagemergeDocx(ListwmlPkgList) WordprocessingMLPackagetarget = null; try { // target = com.plutext.merge.DocumentBuilder.merge(wmlPkgList); ListblockRanges = newArrayList(); for (inti = 0; i

docx4j操作word(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:测试用例(Test Case)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: