使用POI更新.xlsx文件中的现有单元格值后,如果API使用

时间:2018-10-26 07:22:51

标签: java excel apache-poi xlsx

我有一个excel文件,其中包含许多列和一组数据行。 更改 asOf 字段的值后,由于我在使用excel文件的API中使用它,因此出现403 Forbidden错误。我检查了以下内容:

  1. 该字段已正确更新。 (我在手动更新后检查了excel的格式和单元格样式。)
  2. 如果我手动更改单元格值,那么API会给出200。

用于失败响应的图像:当Java代码更新了asOf字段时

enter image description here

通过响应的图像:手动更新asOf字段时。

enter image description here

我要更新的字段的图像如下:

enter image description here

以下是我正在使用的Java代码:

   public static void excelFileReadAndUpdate() throws IOException {
    XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("./src/test/resources/testdata/HoldingDataWeekendDate.xlsx"));
    FileOutputStream fileOut = new FileOutputStream("./src/test/resources/testdata/HoldingDataWeekendDate.xlsx");
    XSSFSheet sheet1 = wb.getSheetAt(0);
    XSSFRow row = sheet1.getRow(1);
    XSSFCell cell = row.getCell(0);
    cell.setCellValue("2018-10-31");
    wb.write(fileOut);
    fileOut.close();
}

注意:我尝试了其他方法,例如使用工作簿并保留格式,但无法正常工作。如果我在打开excel后手动更新该字段,那么它将起作用。

任何建议/建议都会有很大帮助。 预先感谢。

1 个答案:

答案 0 :(得分:0)

在搜索并应用了许多方法之后,最后,通过在Java中对该文件夹/文件应用了赋予读/写权限的代码来解决了该问题。

bundles.Add(new StyleBundle("~/bundles/css").Include(
  "~/lib/bootstrap/css/bootstrap.min.css",                                                        
  "~/lib/owlcarousel/owl.carousel.min.css",
  "~/lib/owlcarousel/owl.theme.default.min.css",
  "~/StylesCdn/google-font.css",
  "~/assests/css/common.min.css"
));

bundles.Add(new StyleBundle("~/bundles/bottomcss").Include(                            
  "~/lib/chartist/scss/chartist.min.css",
  "~/lib/chartist/chartist-plugin-tooltip.min.css",                            
  "~/StylesCdn/export.min.css"
));

bundles.Add(new ScriptBundle("~/bundles/js").Include(
  "~/lib/bootstrap/js/jquery.min.js",
  "~/assests/js/homelayout.min.js"
));

bundles.Add(new ScriptBundle("~/bundles/bottomjs").Include(
  "~/lib/bootstrap/js/bootstrap.min.js",
  "~/lib/owlcarousel/owl.carousel.min.js",
  "~/assests/js/app.min.js",
  "~/Content/Validation.min.js",
  "~/assests/js/InvestmentCalculator.min.js",
  "~/assests/js/common.min.js",
  "~/assests/js/BindDate.min.js"               
));