Hirdetés
Ú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?:))
- BestBuy topik
- Kertészet, mezőgazdaság topik
- Gyúrósok ide!
- AGM G3 Pro - ordít róla, hogy szoftverfejlesztők kellenének
- Erőpróbán a Samsung Galaxy A57, és úgy tűnik, visszatér az A70-es sorozat
- Samsung Galaxy S23 Ultra - non plus ultra
- Sony MILC fényképezőgépcsalád
- GL.iNet Flint 2 (GL-MT6000) router
- RETRO beárazás (mobil, PC, konzol)
- BestBuy ruhás topik
- További aktív témák...
- ELADÓ bevizsgált, felújított, használt Apple és Samsung készülékek garanciával!
- GAINWARD GeForce RTX 3080 Phantom
- Legion 5 GAMING Notebook! 15" OLED / RTX 5070 / Ultra 9 275HX / 32GB DDR5 / 1TB NVMe! BeszámítOK
- Bomba ár! HP 250 G9 - i5-1235U I 8GB I 128GB SSD I HDMI I 15,6" FHD I HDMI I W11 I Cam I Garancia!
- Bomba ár! HP 250 G7 - i5-8G I 8GB I 256SSD I NVIDIA I HDMI I 15,6" FHD I HDMI I W11 I Cam I Gari!
- BESZÁMÍTÁS! MSI B450 R5 5600X 32GB DDR4 512GB SSD RTX 3080 10GB RAMPAGE Shiva Cooler Master 750W
- AKCIÓ! Apple Pro Display XDR 32 6K Nanotexturált üveg monitor garanciával hibátlan működéssel
- 18 éve! Billentyűzet magyarítás magyarosítás. Festés vagy lézerezés és egyebek! 3 lehetőség is van.
- Apple iPhone 15 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- MS SQL Server 2016, 2017, 2019
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


