我正在尝试编写一个每天运行的

Java程序(使用任务调度程序),并且每次运行时都会在Excel电子表格中附加一列.我遇到的问题是它只是重写文件,而不是附加到它.我正在使用Apache POI,这里是相关代码:

public static void toExcel(List results,List notActive)throws IOException{

try {

FileInputStream fIPS= new FileInputStream("test.xls"); //Read the spreadsheet that needs to be updated

HSSFWorkbook wb;

HSSFSheet worksheet;

if(fIPS.available()>=512) {

wb = new HSSFWorkbook(fIPS); //If there is already data in a workbook

worksheet = wb.getSheetAt(0);

}else{

wb = new HSSFWorkbook(); //if the workbook was just created

worksheet = wb.createSheet("Data");

}

//Access the worksheet,so that we can update / modify it

HSSFRow row1 = worksheet.createRow(0); //0 = row number

int i=0;

Cell c = row1.getCell(i);

while (!(c == null || c.getCellType() == Cell.CELL_TYPE_BLANK)) { //cell is empty

i++;

c=row1.getCell(i);

}

HSSFRow rowx;

int x=0;

for(String s : results) {

rowx = worksheet.createRow(x);

HSSFCell cellx = rowx.createCell(i); //0 = column number

cellx.setCellValue(s);

x++;

}

fIPS.close(); //Close the InputStream

FileOutputStream output_file =new FileOutputStream("test.xls");//Open FileOutputStream to write updates

wb.write(output_file); //write changes

output_file.close(); //close the stream

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

我认为你是一次又一次地创建新的行和单元格并导致重写excel.

Essentially you need to get the rows and cells instead of creating

them in your program.

HSSFRow row1 = worksheet.createRow(0);

您可能需要获取行而不是创建它.

HSSFRow row1 = worksheet.getRow(0);

这个小例子更新了第二行的第二个单元格:

//Read the spreadsheet that needs to be updated

FileInputStream fsIP= new FileInputStream(new File("C:\\Excel.xls"));

//Access the workbook

HSSFWorkbook wb = new HSSFWorkbook(fsIP);

//Access the worksheet,so that we can update / modify it.

HSSFSheet worksheet = wb.getSheetAt(0);

// declare a Cell object

Cell cell = null;

// Access the second cell in second row to update the value

cell = worksheet.getRow(1).getCell(1);

// Get current cell value value and overwrite the value

cell.setCellValue("OverRide existing value");

//Close the InputStream

fsIP.close();

//Open FileOutputStream to write updates

FileOutputStream output_file =new FileOutputStream(new File("C:\\Excel.xls"));

//write changes

wb.write(output_file);

//close the stream

output_file.close();

java poi 更新excel_在Java Apache POI中更新现有的Excel文件相关推荐

  1. java.lang.IncompatibleClassChangeError: Found interface org.apache.poi.util.POILogger, but class was

    做Excel导入过程中出现这样的问题 java.lang.IncompatibleClassChangeError: Found interface org.apache.poi.util.POILo ...

  2. JAVA设置输入数据范围,如何使用Apache POI(SXSSF)为特定单元格设置数据(数字)格式区域设置?...

    在Offixe OpenXML的(*.xlsx),用于货币数字格式仅货币符号可以本地化但不是小数分隔符.小数点分隔符来自运行Excel的Windows系统的Windows系统区域设置.千位分隔符还默认 ...

  3. java后台处理excel_java后台利用Apache poi 生成excel文档提供前台下载示例

    之前在项目中会用到在java在后台把数据填入Word文档的模板来提供前台下载,为了自己能随时查看当时的实现方案及方便他人学习我写了这篇博客,访问量已经是我写的博客里第一了.于是乎我在学会用Java在后 ...

  4. java自动生成项目编号_java - Apache POI,在同一文档中创建项目符号点和编号列表 - 堆栈内存溢出...

    我试图用apache poi创建一个既包含圆点又包含编号列表的文档. 我想得到这样的结果. 名单: 清单1项目0 清单1项目1 清单1项目2 列表后的段落. 清单2: 清单2项目0 清单2项目1 清单 ...

  5. java导出表格vsd_java - 如何使用Apache POI将vsd / vsdx文件转换为图像(例如jpg png) - 堆栈内存溢出...

    我正在使用apache poi读取doc / docx文件. 现在,我可以从文档文件中提取段落和图片. 当我的doc文件中有vsd时,如何将vsd转换为png图像? 我尝试了这个: private b ...

  6. poi xwpf 转换成 html,Apache POI创建的docx文档无法转化成html

    当我通过word软件创建文档的时候 FileInputStream fileInputStream = new FileInputStream(sourceFileName); //当你确定该文件可信 ...

  7. java横向导出excel_利用Java进行Excel的数据导入导出

    1. 引言 MS 的电子表格(Excel)是Office 的重要成员,是保存统计数据的一种常用格式.在一 个Java 应用中,将一部分数据生成Excel 格式,是与其他系统无缝连接的重要手段.在远程 ...

  8. poi报空指针_空指针异常apache poi

    嗨,我们一直在使用apache poi ing java程序读取xls和xlsx文件,问题是我们得到空指针异常有两个原因..第一个是我们已经解决的空白单元格,另一个是我们的时候正在选择一个没有任何记录 ...

  9. java代码里的JSON格式怎么写好看_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrdimport jsonimport operatordef read_xlsx(filename): # 打开excel文件 data1 = ...

最新文章

  1. 【Pygame小游戏】这款经典的炸弹人超能游戏上线,你爱了嘛?(附源码)
  2. Mybatis传入参数map,读取map原创
  3. 钉钉扫码登录的实现 与OAUTH2.0
  4. 斯坦福大学机器学习第一课“引言(Introduction)”
  5. 阿里云 AI 编辑部获 CCBN 创新奖,传媒行业解决方案背后的黑科技
  6. 初学者都在坑里!不要在Python中使用“+”来连接字符串
  7. 安装配置gitlab
  8. 2_Recurrent Neural Networks (RNNs)循环神经网络 —Simple RNNs
  9. iOS版本更新与集成百度地图
  10. c语言 静态断言,C断言/静态断言
  11. Python3基础——字典、其他常用操作
  12. MacBook进阶技巧,如何在触控栏添加一键截屏?
  13. 关于lua字节码在32位和64位系统上不兼容的问题
  14. 高速公路5G智能网联技术、方案和应用
  15. 敏涵控股集团成为2022第十二届公益节候选品牌
  16. 读书笔记 - 《上帝的跳蚤》
  17. 大类资产配置(一)均值方差模型MOV
  18. 从底层了解ASP.NET体系结构
  19. django的通过set_password注册密码加密
  20. 计算机音乐谱牵丝戏,《天谕手游》牵丝戏乐谱代码分享-天谕云之光在哪

热门文章

  1. 什么是java泛型_java泛型背后是什么
  2. linux显示界面指令规范,linux的常规操作命令
  3. 20210907 Engine and SDK in development
  4. 20190101.DDD笔记
  5. flask中jinjia2模板引擎详解3
  6. JS定时器的使用--无缝滚动
  7. Tomcat源码学习(7)-How Tomcat works(转)
  8. 洛谷 P2818 天使的起誓
  9. 新旧apache HttpClient 获取httpClient方法
  10. sql2005主从数据库同步配置