导入 Excel 时,我需要将 CSV 中的日期字符串转换为日期类型

导入 Excel 时,我需要将 CSV 中的日期字符串转换为日期类型

我正在使用 iSeries 平台。我有一些程序可以为我需要的数据创建 CSV,还有一个 RPG 程序,它将运行 Java 程序来获取 CSV 数据并将其插入 .xls 模板以创建新的 Excel 电子表格(而不是 .xlsx)。我遇到的问题是 CSV 中的数据值放在引号中并以文本形式插入到 XLS 电子表格中,这在完成所有操作后会给我的日期单元格带来问题。我得到了“小绿色三角形”,因为 Excel 将它们视为输入到日期单元格中的文本。

我知道我可以使用 DateValue() 函数,而且它效果很好,但要求是我们删除包含文本数据的原始列,这样我就失去了对 DateValue() 函数的引用。我正在寻找(并且仍在寻找)一种方法,在文本/字符串日期值进入单元格时将其加载到 DateValue() 函数中,而无需引用另一个单元格,或者一种方法,在补充列中的单元格中永久捕获该值,以便可以删除原始文本列。原始文本列看起来像“06/08/21”,已更新为“06/08/2021”,以消除 Excel 中的“两位数年份”投诉。我的主管并不反对使用 =DateValue() 解决方案,但这需要对原始单元格的引用(除非有解决方法),如果我们朝这个方向发展,她希望删除原始单元格。

我将非常感激任何帮助或指导。包括我如何更好地提出这个问题。

编辑:显然我没有清楚地传达问题。“客户”要求来自数据库的值在 5 列中正确格式化。在从数据库文件到 CSV 执行 CL CPYTOIMPF 时,“纯 CSV”无法正确格式化美元金额。如果有其他方法可以将数据从 iSeries 数据库导入 CSV 或 XLS 文件,我愿意阅读帖子和文章来解决这个问题。

答案1

您应该能够搜索并替换引号,然后将单元格重新格式化为日期。您可以将其录制为宏,并在工具栏中将按钮链接到它,或者将其作为导入的一部分运行。

例如:

   Sub Datestring()
' Datestring Macro
' Removes quote marks and reformats as date
With Selection
    .Replace What:="""", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    .NumberFormat = "[$-x-sysdate]dddd, mmmm dd, yyyy"
    .EntireColumn.AutoFit
End With
End Sub

只需突出显示要转换的列并运行宏,或者每次手动执行即可。

相关内容