- Megjött a Razer DeathAdder egerek legfrissebb nemzedéke
- Ismét minimalista miditorony érkezett a Fractal Design műhelyéből
- Alakul a SpaceX Starlink európai ellenfele
- Digital Fingerprinting: Így buktat le a böngésződ a neten - Tech Percek #18
- Prezentálta PCI Express 6.0-s SSD-vezérlőjét a Silicon Motion
Új hozzászólás Aktív témák
-
E.Kaufmann
veterán
válasz
E.Kaufmann #10544 üzenetére
Tegnap picit még püföltem a kódon:
- kettévettem a poireplace függvényt,
- megcsináltam, hogy elvileg működjön fejléccel és lábléccel is, de ez nem lett alaposabban tesztelve
- néha írt hibaüzeneteket a Word, hogy a fájl meg van már nyitva, így bezártam az input és output állományt is a függvény végén
- kicsit sztrímesítettem, ha valakinek gondja lenne vele, távolítsa el a kódból elsőnek a .parallel() részeket:private static void paragReplace(XWPFParagraph p,java.util.HashMap<String,String> hs){
String text = p.getText();
boolean change=false;
for ( String key : hs.keySet() ) {
if (text != null && text.contains("${"+key+"}")) {
text = text.replace("${"+key+"}", hs.get(key));
change=true;
}
}
if(change){
List<XWPFRun> runs = p.getRuns();
if (runs != null) {
String ff=runs.get(0).getFontFamily();
int fs=runs.get(0).getFontSize();
removeAllRuns(p);
insertReplacementRuns(p,text,ff,fs);
}
}
}
public static void poiReplace(java.util.HashMap<String,String> hs, String in, String out) throws Exception
{
//Bekezdések
java.io.FileInputStream ins=new java.io.FileInputStream(in);
XWPFDocument doc = new XWPFDocument(ins);
doc.getParagraphs().stream().parallel()
.forEach((p) -> {
paragReplace(p,hs);
}
);
//Táblázatok
doc.getTables().stream().parallel()
.forEach((tbl) -> {tbl.getRows().stream()
.forEach((row) -> {row.getTableCells().stream()
.forEach((cell) -> {cell.getParagraphs().stream()
.forEach((p) -> {
paragReplace(p,hs);
});
});
});
}
);
//Fejléc bekezdések és táblázatok
doc.getHeaderList().stream().forEach( (hdr) ->
{
hdr.getParagraphs().stream().parallel()
.forEach((p) -> {
paragReplace(p,hs);
});
hdr.getTables().stream().parallel()
.forEach((tbl) -> {tbl.getRows().stream()
.forEach((row) -> {row.getTableCells().stream()
.forEach((cell) -> {cell.getParagraphs().stream()
.forEach((p) -> {
paragReplace(p,hs);
});
});
});
});
}
);
//Lábléc bekezdések és táblázatok
doc.getFooterList().stream().forEach( (ftr) ->
{
ftr.getParagraphs().stream().parallel()
.forEach((p) -> {
paragReplace(p,hs);
});
ftr.getTables().stream().parallel()
.forEach((tbl) -> {tbl.getRows().stream()
.forEach((row) -> {row.getTableCells().stream()
.forEach((cell) -> {cell.getParagraphs().stream()
.forEach((p) -> {
paragReplace(p,hs);
});
});
});
});
}
);
doc.write(new java.io.FileOutputStream(out));
doc.close();
ins.close();
}
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- ÚJ Lenovo LOQ 15IRX9 - QHD 165Hz - i7-13650HX - 16GB - 1TB - RTX 4060 - Win11 - 3 év garancia
- ÚJ CORE I7 12700 Z690 RIPTIDE GAMER MAX PC 32Gb RAM 1.0TB SSD GEFORCE RTX 3070TI 8GB DDR7 2ÉV GAR!
- Elektronikai hulladékot vásárolok!
- Bambu Lab P1 Series Hardened Steel Upgrade Combo
- OHH! Dell Precision 7560 Tervező Vágó Laptop -70% 15,6" i7-11850H 32/1TB NVIDIA A3000 6GB FHD
- Beszámítás! Apple Mac Mini 2024 M4 16GB 256GB SSD számítógép garanciával, hibátlan működéssel
- AKCIÓ! MSI B550 R7 5700X 32GB DDR4 512GB SSD RTX 3060Ti 8GB Rampage SHIVA MSI 650W
- Bomba ár! Toshiba Satellite Pro R50-C - i3-6G I 4GB I 128GB SSD I 15,6" I HDMI I Cam I W10 I Gari!
- LG 25GR75FG - E-Sport Monitor - FHD 360Hz 1ms - NVIDIA Reflex + G-sync - AMD FreeSync - HDR 400
- Eladó megkímélt állapotban levő Apple iPhone 13 Pro Max 128GB / AKKU 84% / 12 hónap jótállás
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest