Ik moet voor een project het een en ander exporteren.
Oa naar Excel en Word.
http://jakart.apache.org/poi biedt hiervoor een mooie oplossing. Echter het Word gedeelte hinkt nogal achter op dat van Excel. Nu ben ik er al in geslaagd om een bestaand leeg document op te vullen met inhoud van een database.
Wat echter niet lukt is om een nieuwe regel te starten.
Google, Got, Usenet en zelfs de source bevatten hierover geen uitleg. En uit de code benik ook niet veel wijzer geworden.
Wie heeft er al met HWPF gewerkt?
vbcode:
Mijn excuses voor je layout
Oa naar Excel en Word.
http://jakart.apache.org/poi biedt hiervoor een mooie oplossing. Echter het Word gedeelte hinkt nogal achter op dat van Excel. Nu ben ik er al in geslaagd om een bestaand leeg document op te vullen met inhoud van een database.
Wat echter niet lukt is om een nieuwe regel te starten.
Google, Got, Usenet en zelfs de source bevatten hierover geen uitleg. En uit de code benik ook niet veel wijzer geworden.
Wie heeft er al met HWPF gewerkt?
vbcode:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| public void exporteerNaarDOC(DrukwerkenVector drukwerken, String doel)
{
byte[] _tableStream;
byte[] _mainStream;
FileInformationBlock _fib;
//even testen om in te lezen en weg te schrijven
try
{
//omdat de HWPF API nog in een zeer vroeg ontwikkelingsstadium zit kunnen we nog geen
//volledig nieuw word document aanmaken. Om dit op te lossen zullen we altijd
//vertrekken van een leeg document dat we in de package stoppen. Dit document zal dan
//onder de gevraagde naam opgeslaan worden.
HWPFDocument doc = new HWPFDocument(new FileInputStream("c:/leeg.doc"));
CharacterRun run = new CharacterRun();
//wat opmaak
run.setBold(false);
run.setItalic(false);
run.setCapitalized(false);
org.apache.poi.hwpf.Range range = doc.getRange();
//data uitlezen en toevoegen aan bestand
Iterator it = drukwerken.iterator();
while(it.hasNext())
{
DrukwerkenBag bag = (DrukwerkenBag)it.next();
range.insertBefore("Klassen:",run);
range.insertBefore("Bestemming: \n" + bag.getBest_naam(),run);
range.insertBefore("Vak: " + bag.getVk_code(),run);
range.insertBefore("Prijs: " + bag.getPrijs(),run);
range.insertBefore("Datum: " + bag.getDatum_aanvraag(), run);
range.insertBefore("Bon Nummer: " + bag.getBonnr(), run);
}
//wegschrijven bestand en resources vrijmaken.
OutputStream out = new FileOutputStream(doel);
doc.write(out);
out.flush();
out.close();
}
catch (FileNotFoundException fout)
{
System.out.println(fout.getMessage());
}
catch (Throwable t)
{
t.printStackTrace();
}
} |
Mijn excuses voor je layout