在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表。那么在这个章节里面,我将会给大家演示一下,如何用Apache POI在已有的Excel文件中插入一行新的数据。具体代码,请看下面的例子。

  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import org.apache.poi.xssf.usermodel.XSSFCell;
  7. import org.apache.poi.xssf.usermodel.XSSFRow;
  8. import org.apache.poi.xssf.usermodel.XSSFSheet;
  9. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  10. public class CreatRowTest {
  11. //当前文件已经存在
  12. private String excelPath = "D:\\exceltest\\comments.xlsx";
  13. //从第几行插入进去
  14. private int insertStartPointer = 3;
  15. //在当前工作薄的那个工作表单中插入这行数据
  16. private String sheetName = "Sheet1";
  17. /**
  18. * 总的入口方法
  19. */
  20. public static void main(String[] args) {
  21. CreatRowTest crt = new CreatRowTest();
  22. crt.insertRows();
  23. }
  24. /**
  25. * 在已有的Excel文件中插入一行新的数据的入口方法
  26. */
  27. public void insertRows() {
  28. XSSFWorkbook wb = returnWorkBookGivenFileHandle();
  29. XSSFSheet sheet1 = wb.getSheet(sheetName);
  30. XSSFRow row = createRow(sheet1, insertStartPointer);
  31. createCell(row);
  32. saveExcel(wb);
  33. }
  34. /**
  35. * 保存工作薄
  36. * @param wb
  37. */
  38. private void saveExcel(XSSFWorkbook wb) {
  39. FileOutputStream fileOut;
  40. try {
  41. fileOut = new FileOutputStream(excelPath);
  42. wb.write(fileOut);
  43. fileOut.close();
  44. } catch (FileNotFoundException e) {
  45. e.printStackTrace();
  46. } catch (IOException e) {
  47. e.printStackTrace();
  48. }
  49. }
  50. /**
  51. * 创建要出入的行中单元格
  52. * @param row
  53. * @return
  54. */
  55. private XSSFCell createCell(XSSFRow row) {
  56. XSSFCell cell = row.createCell((short) 0);
  57. cell.setCellValue(999999);
  58. row.createCell(1).setCellValue(1.2);
  59. row.createCell(2).setCellValue("This is a string cell");
  60. return cell;
  61. }
  62. /**
  63. * 得到一个已有的工作薄的POI对象
  64. * @return
  65. */
  66. private XSSFWorkbook returnWorkBookGivenFileHandle() {
  67. XSSFWorkbook wb = null;
  68. FileInputStream fis = null;
  69. File f = new File(excelPath);
  70. try {
  71. if (f != null) {
  72. fis = new FileInputStream(f);
  73. wb = new XSSFWorkbook(fis);
  74. }
  75. } catch (Exception e) {
  76. return null;
  77. } finally {
  78. if (fis != null) {
  79. try {
  80. fis.close();
  81. } catch (IOException e) {
  82. e.printStackTrace();
  83. }
  84. }
  85. }
  86. return wb;
  87. }
  88. /**
  89. * 找到需要插入的行数,并新建一个POI的row对象
  90. * @param sheet
  91. * @param rowIndex
  92. * @return
  93. */
  94. private XSSFRow createRow(XSSFSheet sheet, Integer rowIndex) {
  95. XSSFRow row = null;
  96. if (sheet.getRow(rowIndex) != null) {
  97. int lastRowNo = sheet.getLastRowNum();
  98. sheet.shiftRows(rowIndex, lastRowNo, 1);
  99. }
  100. row = sheet.createRow(rowIndex);
  101. return row;
  102. }
  103. }

如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?的更多相关文章

  1. 使用Apache POI操作Excel文件---在已有的Excel文件中插入一行新的数据

    package org.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  2. (6) 如何用Apache POI操作Excel文件-----POI-3.10的一个和注解(comment)相关的另外一个bug

    如果POI-3.10往一个工作表(sheet)里面插入数据的话,需要注意了,其有一个不太被容易发现的bug. 被插入的工作表(sheet)里面的单元格没有包含任何的注解(comment)的时候,插入一 ...

  3. 如何用Apache POI操作Excel文件-----如何对一个单元格加注解?

    有的时候,我们需要通过操作Apache POI,在生成Cell数据的同时,能对其生成的Cell,加上注解(comments),类似于下面的. 那么对于这种情况,我们的代码应该如何写呢? 借花献佛,我就 ...

  4. 如何用Apache POI操作Excel文件-----如何用Apache POI 画一个离散图

    有的时候,我们需要Excel中的数据,通过一个图画,可视化的表现出来. 那么这个时候,应该如何做呢?现在就借花献佛,以Apache POI自己提供的一个例子为例,给大家演示一下POI的API 如何画图 ...

  5. 利用Apache POI操作Excel

    最近在做接口,有个功能是利用Excel导入汽车发动机所需零件信息到线上系统中.简单回顾一下之前学过的用java操作Excel. 1.maven配置Apache POI pom.xml中配置POIjar ...

  6. java使用Apache POI操作excel文件

    官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is ...

  7. 关于 HSSF 和 XSSF 功能的开发者入门指南 (Apache POI 操作 Excel)

    关于 HSSF 和 XSSF 功能的开发者入门指南 笔者深夜无眠,特此对本文翻译一部分,未完成部分待后续更新 本文源文地址 意欲使用 HSSF 和 XSSF 功能快熟读写电子表格?那本文就是为你而写的 ...

  8. apache POI 操作excel<导入导出>

    1.首先导入maven依赖 <!-- POI核心依赖 --> <dependency> <groupId>org.apache.poi</groupId> ...

  9. Apache POI操作pptx基本使用

    最近有一个ppt操作的需求,因此查了下相关的资料 ppt分类 (1)2007版之前的 是基于二进制的文件格式 细节没有完全公开,第三方厂商多是用单向工程方法猜测和分析出来的.WPS做得好一些,但开源的 ...

随机推荐

  1. 布里斯班Twilight Bay Run半程马拉松

    自从8月3日跑了半马以后,又一鼓作气报了11月份的西昌马拉松.与第一次马拉松的只求完赛目标不同,第二次当然想取得一个更好的成绩.所以8月份练的比较猛,基本上是练2.3天休息一天,周么还要拉个长于21公 ...

  2. 淘宝三角做法防CSS2D转换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. H.264 Quantization

    H.264 Quantizer 一般的量化器,可用下面的公式来表示: $Z=\pm \left \lfloor\frac{ \left | W \right | }{\bigtriangleup }\ ...

  4. BufferedInputStream实现原理分析

    原文地址:http://blog.sina.com.cn/s/blog_67f995260101huxz.html BufferedInputStream是一个带有缓冲区的输入流,通常使用它可以提高我 ...

  5. ASP.NET页面跳转

    总结一下跳转方式: <a>标签 <a href=”home.aspx”></a> HyperLink控件 Asp.net 服务器端控件 属性NavigateUrl指 ...

  6. 201521123064 《Java程序设计》第1周学习总结

    1. 本章学习总结 1.了解Java与C/C++的区别,Java语言所写程序较为繁琐,C/C++较为简洁. 2.学会使用cmd进行程序的编译及运行. 3.学会利用JDK辅助Java编程. 4.使用ec ...

  7. 安卓高级 Android图片缓存之初识Glide

    前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...

  8. 20, CSS 定义选择器

    1. ID 与类 2. 层叠 3. 分组 4. 继承 5. 上下文选择器 6. 子类选择器 7. 其他选择器 8. 结构与注释 20.1 ID 与类 选择器是用于控制页面设计的样式.即 ID 选择器何 ...

  9. CSS解决文字超出显示省略号问题

    超出一行 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 超出多行 overflow: hidden; text-ove ...

  10. ContentProvider插件化解决方案

    --摘自<android插件化开发指南> 1.当要传输的数据量大小不超过1M的时候,使用Binder:数据量超过1M时,Binder就搞不定了,需要ContentProvider 2.Co ...