- Samsung Galaxy S25 - végre van kicsi!
- Okosóra és okoskiegészítő topik
- Google Pixel 10 és 10 Pro összehasonlító gyorsteszt
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Apple iPhone 17 Pro Max – fennsík
- Samsung Galaxy Fit 3 - keveset, de jól
- Apple iPhone 16 - ígéretek földje
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- iPhone topik
Új hozzászólás Aktív témák
-
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?:))
- Szuper áron eladó 2az1-ben HP Pavilion x360 /14" i5-1335U, 16GB ram, 512 GB SSD, FHD, IPS,
- Lenovo IdeaPad Slim 5 16IAH8 16 col 12.gen i5 / 16GB / 1TB új 1 napot ment eddig összesen.
- Acer Aspire 5 A517-58GM-78AT i7 / 32GB RAM / 1TB SSD / RTX 2050 17,3
- Remek áron eladó dobozos új ACER NITRO V15 /R7-7735HS/16GB 1000 GB SSD NVIDIA RTX 4060 8 GB 144Hz
- Autós kamera eladó
- BESZÁMÍTÁS! ASROCK B650M R5 7600X 32GB DDR5 1TB SSD RX 6900XT 16GB ZALMAN Z1 Plus EVGA 750W
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5600 / RX 6700XT 12GB / 16GB DDR4 / 500GB SSD
- Honor 90 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! 32GB (2x16) ADATA XPG Lancer RGB 7200MHz DDR5 memória garanciával hibátlan működéssel
- Gamer PC-Számítógép! Csere-Beszámítás! R5 8400F / RTX 3070Ti / 32GB DDR5 / 1TB SSD!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest