我正在使用POI来创build一个Java电子表格。 我有以下用于创build标题行的代码: HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("Report"); // some more code HSSFRow row = sheet.createRow(0); HSSFCell cell = row.createCell(cellNumber); HSSFCellStyle cellStyle = wb.createCellStyle(); cellStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index); cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); HSSFFont font = wb.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.WHITE.index); cellStyle.setFont(font); cell.setCellStyle(cellStyle); 我遇到的问题是,无论select什么颜色,在单元格上设置填充背景颜色总是显示为黑色。 我究竟做错了什么? 如果我不使用“setFillPattern”行,则根本不显示任何颜色。
不知何故,我设法在现有的Excel文件中的两行之间创build新的行。 问题是,一些格式不包括在行的移动。 其中一个,就是在转移过程中隐藏的行并不是相对的。 我的意思是(例如),从20到30的行是隐藏的,但是当创build新行时仍然在那里形成。 在插入/创build新行时,隐藏行也必须移动,它应该是21到31。 另一件事是,工作表中另一个不在单元格中的对象。 像文本框不会在创build新行之后移动。 它像这些对象的位置是固定的。 但是我希望它移动,就像我在Excel中插入新行或粘贴行一样。 如果有插入新行的function,请告诉我。 这是我现在所拥有的,只是我的代码片段。 HSSFWorkbook wb = new HSSFWorkbook(template); //template is the source of file HSSFSheet sheet = wb.getSheet("SAMPLE"); HSSFRow newRow; HSSFCell cellData; int createNewRowAt = 9; //Add the new row between row 9 and 10 sheet.shiftRows(createNewRowAt, sheet.getLastRowNum(), 1, true, false); newRow = sheet.createRow(createNewRowAt); newRow = sheet.getRow(createNewRowAt); 如果复制和粘贴行是可能的,这将是很大的帮助。 […]