0
私は誰かがこれを助けることを願っています。XWPFTableCellでカスタム背景色を設定するにはどうすればよいですか?
私はできるだけ早くdocxドキュメントを生成しようとしていますが、今はテーブルの列やセルに背景色を設定する方法が問題になりますか?
以下は私のコードです。セルの
public static void main(String [] args){
XWPFDocument doc = new XWPFDocument();
XWPFTable table = doc.createTable(3, 4);
fillHeader(table);
mergeCellsHorizontally(table, 0, 0, 1);
mergeCellsVertically(table, 2, 0, 1);
mergeCellsVertically(table, 3, 0, 1);
}
private static void fillHeader(XWPFTable table) {
XWPFTableRow row = table.getRow(0);
row.getCell(0).setText("Column 1");
row.getCell(2).setText("Column 2");
row.getCell(3).setText("Column 3");
XWPFTableRow row1 = table.getRow(1);
row1.getCell(0).setText("Col 1 Row 1");
row1.getCell(1).setText("Col 2 Row 1");
}
private static void mergeCellsHorizontally(XWPFTable table, int row, int
fromCol, int toCol) {
for (int cellIndex = fromCol; cellIndex <= toCol; cellIndex++) {
XWPFTableCell cell = table.getRow(row).getCell(cellIndex);
if (cellIndex == fromCol) {ue
cell.getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);
} else {
cell.getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);
}
}
}
private static void mergeCellsVertically(XWPFTable table, int col, int
fromRow, int toRow) {
for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++) {
XWPFTableCell cell = table.getRow(rowIndex).getCell(col);
if (rowIndex == fromRow) {
cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART);
} else {
cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE);
}
}
}
[XWPFTableCell.setColor](https://poi.apache.org/apidocs/org/apache/poi/xwpf/usermodel/XWPFTableCell.html#setColor%28java.lang.String%29)についてはどうですか?やってみました? –
これはうまく動作します。私は当初、そのメソッドがフォントの色を変更するために使用されたと考えました。ありがとう。 – blitzen12