使用Java将Excel转换为基于CopyBook格式的可变长度数据文件

时间:2015-02-27 21:13:53

标签: java cobol copybook

我正在尝试将excel转换为具有可变长度格式的COBOL数据文件。我能够将Excel转换为制表符格式的文本文件。该数据文件涉及大约400个字段。我不想尝试为每个数据块设置块长度,而是希望在我的代码中使用copybook文件将数据转换为可变长度。我想知道是否有任何框架或建议来实现这一点。

Copybook Format的一部分

 05 EXTR-PRI-APPLICANT-DATA.
          10 EXTR-PRI-SOC-SEC-TAX-ID-NUM           PIC X(09).
          10 EXTR-PRI-FIRST-NAME                   PIC X(15).
          10 EXTR-PRI-MIDDLE-INITIAL               PIC X(01).
          10 EXTR-PRI-LAST-NAME                    PIC X(25).
          continues for 400 fields.   

1 个答案:

答案 0 :(得分:3)

哪个 Cobol 方言????对于不同的Cobol编译器,数字数据的格式是不同的。还有相关的questionanother question

无论如何看看这些java项目:

  • JRecord它基于RecordEditor的代码。该项目可以使用Cobol Copybook读写文件。它还可以处理同一文件中的多种记录格式。如果它只是一种记录格式,那么还有Csv2Cobol实用程序。 JRecord非常适合基于Cobol Copybooks的通用实用程序
  • Cobol2J - 如果文件中有多种记录格式,可能会出现问题。
  • Cb2xml - 此软件包将读取Cobol副本并将其转换为Xml。 Xml保存所有Cobol字段,其中起始位置,长度图片定义。最新版本具有用于处理Xml的JaXB示例代码。 JRecord Cobol2J 使用 Cb2xml 加上一些商业广告资源,例如Stirling Map editorCA DevTest Solutions
  • legstar
  • 还有其他开源项目,但大部分需要比上述更多的工作。
  • 有几个可用的商业软件包可以转换为Mainframe Cobol文件。例如IBM拥有可以为Cobol文件生成Java类的包。大多数都很贵。

在上述内容中,所有人都将处理IBM Mainframe Cobol; JRecord为其他Cobol编译器提供有限的支持。

比尔毫无疑问会提到,如果你选择上述任何一项,你需要满足那里使用的审核员。也就是说,商业包或大型开源<商业包中使用 JRecord Cb2Xml Legstar / strong>转型项目。 Legstar看起来也变成了半商业广告,所以请检查许可证。


披露:我写了JRecord,RecordEditor,并帮助Peter和Jean-Francois写了Cb2Xml