【发布时间】:2021-09-27 14:35:16
【问题描述】:
我有一个 VB.NET 问题,我想将 Excel 电子表格标题行中的非标准日期转换为不同的格式。具体来说,工作表带有一个字母数字字符串变量日和月(例如,“5 Sep”),但我需要将其转换为另一个字符串,如“05/09”。
不幸的是,我既没有创建这些工作表,也没有定义自己的输出格式应该是什么——因此陷入了困境。任何帮助将不胜感激,因为到目前为止我已经浪费了两天时间!非常感谢。
Try
xlWorkBook = xlApp.Workbooks.Open(result2)
xlWorkSheet = xlWorkBook.Worksheets("Attendances")
xlWorkBook.Activate()
If xlWorkSheet.Cells(1, 1).Value = "Course" Then
xlWorkSheet.Rows(1 & ":" & 3).Delete()
xlWorkBook.Save()
For t As Integer = 6 To 75
If xlWorkSheet.Cells(1, t).Value <> "" And Len(xlWorkSheet.Cells(1, t).Value) > 25 Then
xlWorkSheet.Cells(1, t).Value = Microsoft.VisualBasic.Left(xlWorkSheet.Cells(1, t).Value, InStr(xlWorkSheet.Cells(1, t).Value, " 20") - 1)
End If
Next
xlWorkBook.Save()
xlWorkBook.Close()
End If
xlApp.Quit()
Catch ex As Exception
lblPath.Text = "Exception"
End Try
【问题讨论】:
-
您确定日期实际上是
5 Sep还是 Excel 的显示方式? -
请在您的问题中添加一些代码,显示用于读取 Excel 文档的 vb.net 以及您尝试读取和转换日期单元格的尝试
-
您必须知道可能的日期格式是什么才能解析文本。您可以调用
ParseExact或TryParseExact并指定多种格式以转换为Date,然后使用您想要的任何最终格式调用ToString。 -
日期实际上是“5 Sep”,因为它的开头是“5 Sep 2021 2.20PM All students”。我已经解析了字符串并删除了“5 Sep”右侧的所有内容,但这仍然给我留下了我所描述的问题。
-
jmcilhinney 它确实以日期开头,但字符串“2021 年 9 月 6 日 2.20PM 所有学生”,这是非常没用的。就像我对 djv 说的那样,我可以将其删除至“6 Sep”,但这不是公认的日期格式。我正在考虑通过 if-then 语句蛮力解析它,然后重建它。