【问题标题】:Read specific information from an .xlsx file using java使用 java 从 .xlsx 文件中读取特定信息
【发布时间】:2021-03-20 05:09:21
【问题描述】:

xlsx 文件具有以下格式的内容enter image description here

我想将突出显示的信息捕获到作为字符串进入数据库的不同字段中

最终日期将在第 3 行突出显示,并将存储在字符串 finaldate 中;

最终状态为失败的第 6 行将进入字符串状态;

然后,第 24 行:DATAID 之前的值。必须像 3ABC36812 一样进行检索,必须使用 string.split(".")[0] 将其存储到字符串 dataid 中;

由于这些列在 Excel 工作表中的不同行中可能会有所不同,我如何使用 BufferedReader 组件专门准确地捕获这些值

 String line;
      try (BufferedReader br = new BufferedReader(new FileReader(str)))
       {
          for (int i = 0; i < n; i++)
              br.readLine();
          line = br.readLine();
          System.out.println(line);
           
if (line.startsWith("FINAL DATE:"))
{
string [] split=line.split(":").[1]
//not sure coz even HH:MM has the colon in it,so how to extract the date value alone
finaldate=split; ///????
}

//so i am checking if the column dataid exists using starts with and then fetch the row below that having the dataid into string data column
if (line.startsWith("DATAID"))
{
needcat=true;
System.out.println( "bye "+needcat);
}

我不想使用 apache poi,因为我的 java 版本不支持它,我更愿意探索在 java 中使用 bufferedreader/filestream 组件

【问题讨论】:

  • xlsx 格式很重要。你还知道格式吗?你的 Java 版本怎么能不支持一个已经问世一两年的库?
  • 你能在这个文件中找到一个文件吗?这就是你的起点
  • 我可以阅读一些,但不是所有的领域,有没有最好的方法来一一阅读?
  • @joseph larson xlsx 格式很重要,因为当我尝试读取文件时,它使用缓冲读取器显示所有无效字符并且仅支持 csv fromat。不确定如何适应 xlsx 文件格式并读取特定行检索值!
  • 您能否,不,您的 IDE 能否正确缩进您的代码,以便我们可以轻松阅读它?谢谢。

标签: java arrays string datetime type-conversion


【解决方案1】:

我真的不认为你会以你尝试的方式得到你想要的东西。看看这个页面:

https://docs.fileformat.com/spreadsheet/xlsx/

他们似乎在暗示 .xlsx 文件是 zip 文件。

如果这是真的,那么你不会按照你阅读它的方式取得成功。

我不明白你为什么不能使用 POI。如果您需要 11 之前的 Java,也许您可​​以从 10 年前或其他什么地方获取较旧的副本。

否则,您需要先使用 Zip 库来解压它。

【讨论】:

  • 感谢 Joseph 的分析,我知道 POI 是前进的方向,但我想知道我是否可以使用缓冲阅读器模块库来做到这一点,并且我能够使用 csv 和文本文件做到这一点轻松但不适用于 xlsx 文件,因为分隔符完全不同,当我在文件中使用 br.readLine() 时会得到特殊字符。
  • James,根据我链接的页面,xlsx 文件是 ZIP 文件。它不是一个简单的文本文件。它不会像您尝试的那样以简单的方式解析。
猜你喜欢
  • 2020-12-20
  • 1970-01-01
  • 2013-09-19
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多