Mit Hilfe von POI eine Tabelle ohne Rahmen in Word schreiben

louisa2012

Mitglied
Hallo ihr Lieben,

ich sitze nun schon ewig an einem Problem.
Ich möchte eine Tabelle ohne Rahmen in ein Word-Dokument schreiben.
Dazu habe ich zwei Ansätze die aber beide nicht funktionieren.

Zu einem habe ich :


Java:
private static void test(int rows, short columns) throws Exception {

		POIFSFileSystem fileSystem = new POIFSFileSystem(new FileInputStream("D:/empty.doc"));
		HWPFDocument doc = new HWPFDocument(fileSystem);
		Range range = doc.getRange();

		TableProperties properties = new TableProperties(columns);
		Table table = range.insertBefore(properties, rows);

		for (int rowIdx = 0; rowIdx < table.numRows(); rowIdx++) {
			TableRow row = table.getRow(rowIdx);
			row.setRowHeight(20);

			for (int colIdx = 0; colIdx < row.numCells(); colIdx++) {
				TableCell cell = row.getCell(colIdx);
				try {
					Paragraph par = cell.getParagraph(0);
					par.insertBefore("test" + (rowIdx));
				} catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		}

		FileOutputStream outStream = null;
		try {
			outStream = new FileOutputStream("D:/test" + (new Date()).getTime() + ".doc");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

		try {
			doc.write(outStream);
			outStream.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

In diesem Fall wird meine Tabelle als "ein Strich" dargestellt und erst wenn ich im Word-Dokument selber bin und die Tabelle "auseinanderziehe" kann ich alles sehen.

Im zweiten Fall habe ich es mit XWPFTableRow versucht. Bzw. ich habe den Code auf einer Seite gesehen und ihn versucht zu verstehen. Es klappt auch soweit, aber wie kann ich jetzt setzen das kein Rahmen gedruckt wird?

Java:
public static void main(String[] args) throws Exception {

		XWPFDocument document = new XWPFDocument();

		// Create a new table with 6 rows and 3 columns
		int nRows = 2;
		int nCols = 5;
		XWPFTable table = document.createTable(nRows, nCols);


		CTTblPr tablePr = table.getCTTbl().getTblPr();
		CTString styleTable = tablePr.addNewTblStyle();
		styleTable.setVal("meinStyle");

		// Get a list of the rows in the table
		List<XWPFTableRow> rows = table.getRows();
		int rowCt = 0;
		int colCt = 0;

		// ueber die Zeilen iterieren
		for (XWPFTableRow row : rows) {
			CTTrPr rowProperties = row.getCtRow().addNewTrPr();
			CTHeight rowHeight = rowProperties.addNewTrHeight();
			rowHeight.setVal(BigInteger.valueOf(360));

			// get the cells in this row
			List<XWPFTableCell> cells = row.getTableCells();

			// iteriere ueber die Zellen
			for (XWPFTableCell cell : cells) {
				CTTcPr cellPropertie = cell.getCTTc().addNewTcPr();
				CTVerticalJc verticalCell = cellPropertie.addNewVAlign();
				verticalCell.setVal(STVerticalJc.CENTER);

				CTShd ctshd = cellPropertie.addNewShd();
				ctshd.setColor("auto");
				ctshd.setVal(STShd.CLEAR);
				if (rowCt == 0) {
					// header row
					ctshd.setFill("A7BFDE");
				} else if (rowCt % 2 == 0) {
					// even row
					ctshd.setFill("D3DFEE");
				} else {
					// odd row
					ctshd.setFill("EDF2F8");
				}

				// get 1st paragraph in cell's paragraph list
				XWPFParagraph para = cell.getParagraphs().get(0);

				XWPFRun rh = para.createRun();
				// style cell as desired

				rh.setFontSize(5);
				rh.setFontFamily("Courier");
				para.setAlignment(ParagraphAlignment.CENTER);

				if (rowCt == 0) {
					// header row
					rh.setText("header row, col " + colCt);
				} else if (rowCt % 2 == 0) {
					// even row
					rh.setText("row " + rowCt + ", col " + colCt);
				} else {
					// odd row
					rh.setText("row " + rowCt + ", col " + colCt);
				}
				colCt++;
			} // for cell
			colCt = 0;
			rowCt++;
		} // for row

		// write the file

		FileOutputStream out = new FileOutputStream("D:/styledTable1.doc");
		document.write(out);
		out.close();
	}


Ich hoffe ihr könnt mir Tipps geben.... ich verzweifle....
 

louisa2012

Mitglied
Hallo liebe Javafreunde,

ich habe für meine zweite Idee einen weiteren Hinweis bekommen. In Zeile 9 habe ich nun folgendes eingefügt:


Code:
XWPFTable table = document.createTable(nRows, nCols);
table.setInsideHBorder(XWPFBorderType.NONE, 10, 5, "1C7331");
table.setInsideVBorder(XWPFBorderType.NONE, 10, 5, "1C7331");

Leider ist der äußere Rahmen immer noch zu sehen. Die inneren Rahmen sind so ausgeblendet wie ich es haben möchte. Hat jemand eine Idee?

Lg Louisa.
 

louisa2012

Mitglied
Ich habe die Lösung. In meiner Vorlage füge ich schon solche Tabellen hinzu und kann die Zellen hiermit füllen:


Code:
private void tableHinzufuegen(XWPFDocument doc, String text, int row, int cell, int tableIdx) {

		XWPFTableRow xWPFTableRow;
		XWPFTable table = doc.getTables().get(tableIdx);
		List<XWPFTableRow> zeile = table.getRows();

		if (zeile.size() >= row + 1) {
			xWPFTableRow = zeile.get(row);
		} else {
			xWPFTableRow = doc.getTables().get(tableIdx).createRow();
		}

		xWPFTableRow.getCell(cell).setText(text);
	}

Das einzige was jetzt noch fehlt ist das Ändern der Schriftgröße, sowie der Schriftart des Textes in der Zelle.

Hat jemand eine Idee,

lg Louisa.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Hilfe bei Integration von Rest API in Homepage XML & JSON 3
S Hilfe beim RDF-Graphen XML & JSON 0
T HTML mit Hilfe Jsoup einlesen XML & JSON 11
B XML auslesen, benötige Hilfe XML & JSON 13
F Hilfe beim bearbeiten von XML elemente XML & JSON 3
C Brauche Hilfe bei SHA256-Hash-Signatur XML & JSON 2
N Hilfe beim Einstieg in EMF XML & JSON 6
D Brauche Hilfe bei ireport, Erstellung mehrerer Seiten XML & JSON 6
F hilfe bei einer aufgabe XML & JSON 3
F hilfe bei xpath-ausdruck XML & JSON 2
E JAXM Hilfe XML & JSON 2
W root element parsen,Hilfe! XML & JSON 5
E Formatieren von XML Code mit Hilfe von DOM? XML & JSON 7
J xml in jtree: kleine Hilfe nötig XML & JSON 3
P XML mit hilfe von JDOM abspeichern macht Problem XML & JSON 6
I Mit Hibernate eine XML-Datei in eine Tabellenspalte einlesen. XML & JSON 1
S Muss ich bei JAXB immer noch eine zusaetzliche List-Wrapper Klasse erstellen wenn ich mehrere Objekte serialisieren will..? XML & JSON 1
D Innerhalb einer Property auf eine andere verlinken? XML & JSON 3
P wie kriege ich eine *.dtd Datei mit in die ausführbare *.jar? XML & JSON 2
E JTreedaten in eine XML Datei speichern XML & JSON 3
M Wie kann ich eine unter SAX eingelesene XML bearbeiten? XML & JSON 4
D eine Schema für ein andere Schema XML XML & JSON 14
S Aus XML-File eine Baumstruktur erzeugen XML & JSON 5
ruutaiokwu xml nur bis auf eine bestimmte ebene parsen mit javax.xml... XML & JSON 5
F Wie bringe ich zwei xml Datein mit eine jar zum laufen? XML & JSON 4
F SAX Parser siehe nichts auf dem Konsole weder eine Fehlermeldung noch eine Ergebnis XML & JSON 6
C Xml file gegen eine DTD validieren XML & JSON 3
G Problem beim schreiben von XML in eine File XML & JSON 2
B muss standalone angegeben werden sobal eine DTD vorhanden ist? XML & JSON 6
G XSL: Element über eine Variable ermitteln XML & JSON 4
M Frage zu Erklärung im Online book "Java ist auch eine I XML & JSON 4
T Wie einen String(XML Inhalt) in eine XML Datei speichern? XML & JSON 8
P XML Dateien zusammenführen und in eine XML speichern XML & JSON 7
A Mehrere Anwender sollen auf eine XML-Datei zugreifen XML & JSON 4
L mit Java eine HTML-Datei erstellen XML & JSON 3
A xml-schema aus wsdl auslagern in eine eigene xsd-Datei XML & JSON 3
G xml einlesen und bestimmte Elemente an eine gui_Klasse überg XML & JSON 25
G Mit JAXP in eine Datei schreiben XML & JSON 2
T Newbie Frage.aus Java eine XML Datei erstellen? XML & JSON 7
G Prüfen ob eine XML-Datei "well-formed" ist XML & JSON 2
G Xml Elemente in eine Liste abspeichern! XML & JSON 2
D Suche eine OnlineQuelle für SAX XML & JSON 2
D ods./Excel Tabelle oder doch SQL für nen Anfänger? XML & JSON 5
1 Html tabelle auslesen??? XML & JSON 6
JanUlrich Tabelle auslesen XML & JSON 2
P Poi /XSSF : Excel-Tabelle auslesen XML & JSON 2
D Datenbank-Tabelle to XML XML & JSON 11
L XML Daten auslesen und in Tabelle (Array) speichern XML & JSON 1
O OpenDocument-Tabelle mit Java lesen und schreiben XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben