poi xssf 怎么实现插入一行

poi xssf 怎么实现插入一行,第1张

主要是用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有

我试验一下,无论什么结果都会回复你。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7853998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存