Używam Apache POI do eksportowania danych do pliku .xlsx i chcę nadać styl niektórym wierszom i komórkom zawartym w pliku.Apache POI, tworzenie nowych komórek zastępuje styl wiersza
Używam XSSF, ponieważ plik będzie czytany w programie Excel 2007+.
Zasadniczo mój problem polega na tym, że próbuję ustawić styl wiersza, jak w poniższym przykładzie, który ustawia czarny kolor pierwszego planu dla całego wiersza na indeksie 0. Działa dobrze, ale gdy tylko utworzę nową komórkę , nowo utworzona komórka nie ma stylu, tak jak nadpisuje określony styl wiersza.
Oto fragment kodu, aby wykazać, co robię:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("mySheet");
XSSFRow row = sheet.createRow(0);
XSSFCellStyle myStyle = wb.createCellStyle();
myStyle.setFillForegroundColor(new XSSFColor(new Color(255, 255, 255)));
myStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
row.setRowStyle(myStyle); //This works, the whole row is now black
row.createCell(0); // This cell doesn't have a style, the rest of the line stays stylized
row.getCell(0).setCellValue("Test");
Próbowałem też * row.createCell (0, Cell.CELL_TYPE_STRING) *, ale to niczego nie zmienia.
Jaki jest prawidłowy sposób realizacji tego, co chcę zrobić? Chciałem to zrobić w ten sposób, więc nie musiałem ustawiać stylu każdej komórki po jej utworzeniu, ponieważ wszystkie komórki w tym samym wierszu mają ten sam styl.
spróbować nazywając _row.createCell() _ przed _row.setRowStyle (myStyle); _ –
Tak Próbowałem już tego i kolejność nie ma znaczenia, wydaje się –
_row.setCellValue ("Test"); _ daje mi kontrolę błędów w czasie kompilacji! –