主要是用sheet.shiftRows()方法,可以直接看代码。
/*** Excel插入一行示例
* Created on 2017/2/8.
*/
public class ExcelDAO {
public void insertRow(String fileName) throws IOException, InvalidFormatException {
File file = new File(fileName)
Workbook workbook = new XSSFWorkbook(new FileInputStream(file))
Sheet sheet = workbook.getSheetAt(0)
sheet.shiftRows(10, sheet.getLastRowNum(), 1) //10-最后一行,向下移动一行
Row newRow = sheet.createRow(10)
Cell newCell = newRow.createCell(0)
newCell.setCellValue("新插入的内容")
workbook.write(new FileOutputStream(fileName))
workbook.close()
}
public static void main(String[] args) throws IOException, InvalidFormatException {
String fileName = "E:\\test.xlsx"
ExcelDAO excelDAO = new ExcelDAO()
excelDAO.insertRow(fileName)
}
}
这是Excel前后对比的截图。
可能是你在表格的最大行或最大列处无意中添加了什么对象,如图片、文本框之类的。解决方法是:按住Ctrl键不放,再敲“→”或“↓”键,到表格的最大列或最大行,找到那个对象,把它去掉,或是把它移到需要的地方去。 另外,在定义格式、标记颜色、画表格、合并单元格、插入背景也会出现上述问题。在制作表格时,用多少处理多少,不要直接选择行号或列号,更不要全选。这个我需要试验一下,有可能象你说的是一个天然BUG。2003与2007的处理方式有很大的区别。
我所知道的一点,就是2007好象没有强制记算公式的方法(也许是我没找到吧。),而2003有
我试验一下,无论什么结果都会回复你。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)