Apache POI Word Tabelle Spaltenbreite festlegen

kiname

Mitglied
Hallo,

ich versuche nun schon seit einiger Zeit die Spaltenbreite einer XWPFTable festzulegen und finde einfach keine Lösung.
Die Spaltenbreite für alle Spalten will ich nicht allgemein festlegen nur für bestimmte Spalten eine bestimmte Breite.
Momentan habe ich folgendes als Ansatz:
Java:
XWPFTable table = document.createTable(5, 4);
table.getRow(0).getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(2000));

Lg
kiname
 
also ich habe eine XWPFTable das hat 5 zeilen und 4 spalten.
Die sind jedoch unformatiert deshalb will ich die breite der Spalten festlegen.
so dass z.B. die 2te und die 4te spalte breiter sind als die 1ste und 3te spalte.
wie kann ich das realisieren?

ist meine Frage nun eindeutig?
 
Ja ich habe den obrigen Code versucht und auch ohne Fehlermeldung jetzt habe ich eine Testklasse erstellt und den code getstet aber das ergebnis ist eine komplett zusammengeschobene tabelle weißt du den fehler?

Java:
public class Main {
	static String savePathName = "C:\\Users\\WV00033160\\Desktop\\Testerdoc.docx";
	public static void main(String[] args) {
		XWPFDocument doc = new XWPFDocument();
	      int[] cols = {4000, 2000, 3000};
	      XWPFTable table = doc.createTable(3, 3);
	      
//	      table.getRow(0).getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(2000));

	      for(int i = 0; i < table.getNumberOfRows(); i++){
	          XWPFTableRow row = table.getRow(i);
	          int numCells = row.getTableCells().size();
	          for(int j = 0; j < numCells; j++){
	              XWPFTableCell cell = row.getCell(j);
	 
	              cell.getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(cols[j]));
	          }
	      }
	      
	      try{//Dokument Speichern
				FileOutputStream output = new FileOutputStream(savePathName);
				doc.write(output);
				output.close();
			}catch(Exception e){
				e.printStackTrace();
			}//Speichern Ende
	}
	
}
 
ja das ist das problem aber 2007 ist fest installiert daran kann ich nichts ändern ich will jedoch dennoch die spaltenbreite festlegen es muss doch auch möglich sein das problem mit word 2007 zu lösen
 
Zuletzt bearbeitet:
.... es muss doch auch möglich sein das problem mit word 2007 zu lösen

Nein muss es nicht, wenn Office damals bestimmte Funktionalität nicht zugänglich hatte dann ist es eben so.
Den Hersteller der API und vielleicht Microsoft anschreiben und probieren es zu klären.

PS: Office 2007 ist doch schon ziemlich "alt" oder nicht?
 

Neue Themen


Zurück
Oben