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键不放,再敲“→”或“↓”键,到表格的最大列或最大行,找到那个对象,把它去掉,或是把它移到需要的地方去。 另外,在定义格式、标记颜色、画表格、合并单元格、插入背景也会出现上述问题。在制作表格时,用多少处理多少,不要直接选择行号或列号,更不要全选。

1.创建文件

生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:

代码(CreateXLS.java):

//生成Excel的类

import java.io.*

import jxl.*

import jxl.write.*

public class CreateXLS

{

public static void main(String args[])

{

try

{

//打开文件

WritableWorkbook book=

Workbook.createWorkbook(new File(“测试.xls”))

//生成名为“第一页”的工作表,参数0表示这是第一页

WritableSheet sheet=book.createSheet(“第一页”,0)

//在Label对象的构造子中指名单元格位置是第一列第一行(0,0)

//以及单元格内容为test

Label label=new Label(0,0,”test”)

//将定义好的单元格添加到工作表中

sheet.addCell(label)

/*生成一个保存数字的单元格

必须使用Number的完整包路径,否则有语法歧义

单元格位置是第二列,第一行,值为789.123*/

jxl.write.Number number = new jxl.write.Number(1,0,789.123)

sheet.addCell(number)

//写入数据并关闭文件

book.write()

book.close()

}catch(Exception e)

{

System.out.println(e)

}

}

}

编译执行后,会在当前位置产生一个Excel文件。

2.读取文件

以刚才创建的Excel文件为例,做一个简单的读取 *** 作,程序代码如下:

//读取Excel的类

import java.io.*

import jxl.*

public class ReadXLS

{

public static void main(String args[])

{

try

{

Workbook book=

Workbook.getWorkbook(new File(“测试.xls”))

//获得第一个工作表对象

Sheet sheet=book.getSheet(0)

//得到第一列第一行的单元格

Cell cell1=sheet.getCell(0,0)

String result=cell1.getContents()

System.out.println(result)

book.close()

}catch(Exception e)

{

System.out.println(e)

}

}

}

程序执行结果:test

3.修改文件

利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,其他 *** 作和创建Excel是一样的。下面的例子是在已经生成的Excel文件中添加一个工作表:

//修改Excel的类,添加一个工作表

import java.io.*

import jxl.*

import jxl.write.*

public class UpdateXLS

{

public static void main(String args[])

{

try

{

//Excel获得文件

Workbook wb=Workbook.getWorkbook(new File(“测试.xls”))

//打开一个文件的副本,并且指定数据写回到原文件

WritableWorkbook book=

Workbook.createWorkbook(new File(“测试.xls”),wb)

//添加一个工作表

WritableSheet sheet=book.createSheet(“第二页”,1)

sheet.addCell(new Label(0,0,”第二页的测试数据”))

book.write()

book.close()

}catch(Exception e)

{

System.out.println(e)

}

}

}


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

原文地址:https://54852.com/bake/11674387.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存