【发布时间】:2018-10-22 16:13:56
【问题描述】:
我想将 .CSV 文件转换为 .XLSX。
到目前为止我有这个代码
Public Sub CreateExcelFromCsvFile(ByVal strFolderPath As String)
Dim oExcelFile As ObjectOpen Excel application object
Try
oExcelFile = GetObject(, "Excel.Application")
Catch
oExcelFile = CreateObject("Excel.Application")
End Try
oExcelFile.Visible = False
oExcelFile.Workbooks.Open(strFolderPath)
' Turn off message box so that we do not get any messages
oExcelFile.DisplayAlerts = False
' Save the file as XLS file
Dim adr As String = ""
For i = 0 To btn_chemin_source.Tag.ToString.Split("\").Count - 2
adr += btn_chemin_source.Tag.ToString.Split("\")(i) & "\"
Next
With oExcelFile.ActiveWorkbook
.SaveAs(Filename:=adr & "RD.xlsx", FileFormat:=Excel.XlFileFormat.xlOpenXMLWorkbook, CreateBackup:=False, Local:=True)
.Close(False)
End With
' Close the workbook
'oExcelFile.ActiveWorkbook.Close(SaveChanges:=False)
' Turn the messages back on
oExcelFile.DisplayAlerts = True
' Quit from Excel
oExcelFile.Quit()
' Kill the variable
oExcelFile = Nothing
End Sub
我的问题是,即使我在谷歌上搜索了一些线索来选择“面板控制>区域”中的分隔符并在 SaveAs 方法中使用 local=True,VB 仍然继续使用逗号作为分隔符而不是分号,所以我的 Excel 文件无法使用。
在将 CSV 保存到 xlsx 时,您对如何选择选定的分隔符有任何提示吗? :)
非常感谢您的宝贵时间!
【问题讨论】:
-
我无法理解。看起来您打开文件,然后将其另存为 Excel XML。我不认为 Excel XML 使用分隔符,它使用 XML。您是指 CSV 输入的分隔符,还是打算将其保存为 CSV 而不是 XML?
-
你要从 CSV 到 xlsx,对吧?所以你的问题是当你打开 csv 文件时?然后查看 OpenText 方法:
oExcelFile.Workbooks.OpenText(Filename:=strFolderPath, Local:=True, Semicolon:=True)。也许不需要本地和分号,但值得一试。看看会发生什么 -
你好 tgolisch,对不起我的英语不好;是的,我正在尝试将带有分号分隔符的 CSV 文件转换为 .xlsx,但问题是 vb.net 选择逗号作为分隔符来填充单元格,而不是使用 SaveAs 方法尝试的分号。 @MacroMarc 非常感谢您,它运行良好!单独查看参数后,分号似乎没有做任何事情,但是 Local 用 OpenText 方法解决了问题!