Tôi đang sử dụng Apache POI để xuất dữ liệu sang tệp .xlsx và tôi muốn tạo kiểu cho một số hàng và ô chứa trong tệp.Apache POI, tạo ô mới ghi đè kiểu hàng
Tôi đang sử dụng XSSF vì tệp sẽ được đọc trong Excel 2007+. Về cơ bản, vấn đề của tôi là tôi đang cố gắng thiết lập một kiểu hàng như trong ví dụ sau, thiết lập màu nền trước màu đen cho toàn bộ hàng tại chỉ mục 0. Nó hoạt động tốt, nhưng bất cứ khi nào tôi tạo một ô mới , ô mới được tạo không có kiểu, như thể nó ghi đè kiểu hàng tôi đã chỉ định.
Dưới đây là một đoạn mã để chứng minh những gì tôi đang làm:
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");
Tôi cũng đã cố gắng * row.createCell (0, Cell.CELL_TYPE_STRING); *, nhưng nó đã không thay đổi bất cứ điều gì.
Cách chính xác để hoàn thành những gì tôi muốn làm là gì? Tôi muốn làm theo cách này vì vậy tôi không phải thiết lập phong cách của mỗi tế bào sau khi tạo ra nó vì tất cả các ô trên cùng một hàng đều có cùng kiểu.
thử gọi _row.createCell() _ trước _row.setRowStyle (myStyle); _ –
Ừ Tôi đã thử điều đó và thứ tự không quan trọng có vẻ như –
_row.setCellValue ("Test"); _ cho tôi một kiểm tra lỗi thời gian biên dịch! –