如何在从 PDF 表单到 MS Excel 电子表格的可变长度数字中保持前导零?

How does one maintain leading zeros in numbers of variable length from PDF forms to MS Excel spreadsheet?

我有数百个提供电子资金转帐 (EFT) 信息的 PDF 表格。我的会计人员向我保证,银行帐号中的前导零很重要,需要维护。然而,由于表格提交者使用不同的银行帐号方案,因此提供的帐号长度可变。

在我将 PDF 表格编译成电子表格后,我如何格式化生成的 CSV 文件中的帐号字段以显示前导零,其中前导零由提交者提供,而不向帐号添加前导零没有使用前导零?

(我知道这个问题的答案是,"The leading zeros are not important."请假设他们是来逗我。)

感谢任何帮助。

可以通过编程方式assemble制表符分隔(或 CSV 格式,或任何结构化文本格式的格式)文本,使其成为数据对象,然后导出。在我的工作中,这种情况发生得比较频繁,最常见的是制表符分隔,但也使用该方法创建了 FDF 或 CSV。如评论中所述,添加 space (或任何非数字字符)应保留前导零,直到您可以在 Excel.

中设置列​​的格式

导出文件后,您可以将其导入 Excel。

使用 Acrobat 从 "Export Data From Multiple Forms" 对话框创建的 CSV 文件,我只是使用 VBA 引用 "Acrobat" 到 "re-enter" 只有帐号字段的确切文本.事实证明这比听起来要简单,因为 CSV 文件是在第一列中使用表单的文件名生成的。它还避免了重写整个过程,而是只对需要的部分进行编码。最困难的部分是找到如何将字段保持为文本格式。最后,我用了

jso.getField("Account Number").valueAsString

完整代码如下:

Sub GetAccountNumbers()
  Dim AcroApp As Acrobat.CAcroApp
  Dim DisbForm As Acrobat.CAcroPDDoc
  Dim jso As Object
  Dim FormPath, FormFile As String
  Dim i, LastRow As Integer

  Set AcroApp = CreateObject("AcroExch.App")
  Set DisbForm = CreateObject("AcroExch.PDDoc")

  'This is the path to the folder contaioning the forms
  FormPath = "C:\FolderOfPDFForms\"

  'This is the number of the row containing the last record in the CSV file
  LastRow = 5000

  For i = 2 To LastRow
    FormFile = Worksheets(1).Range("A" & i).Value
    DisbForm.Open (FormPath & FormFile)
    Set jso = DisbForm.GetJSObject
    Worksheets(1).Range("B" & i).Value = jso.getField("Account Number").valueAsString
    DisbForm.Close
  Next i

  Set AcroApp = Nothing
  Set DisbForm = Nothing

End Sub

谢谢大家的意见。