Excel 使用VB.NET将CSV转换为XLSX:分隔符错误
我想将.CSV文件转换为.XLSX文件 到目前为止,我有这个代码Excel 使用VB.NET将CSV转换为XLSX:分隔符错误,excel,vb.net,csv,Excel,Vb.net,Csv,我想将.CSV文件转换为.XLSX文件 到目前为止,我有这个代码 Public Sub CreateExcelFromCsvFile(ByVal strFolderPath As String) Dim oExcelFile As ObjectOpen Excel application object Try oExcelFile = GetObject(, "Excel.Application") Catch
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
我的问题是,即使我在google上搜索了一些线索,在“Panel Control>region”中选择分隔符,并在SaveAs方法中使用local=True,VB仍然使用逗号作为分隔符,而不是分号,因此我的Excel文件无法使用
关于如何在将CSV保存到xlsx时选择所选分隔符,您有什么提示吗?:)
非常感谢您抽出时间 因此,我不知道是否必须有答案才能将主题标记为已解决,但如果是这样的话,我在评论中找到了解决方案: 不使用saveAs函数将csv文件保存为excel,而是使用OpenText方法,Local:=True;最后保存为xlsx,不带特定参数: 而不是:
oExcelFile.Workbooks.Open(strFolderPath)
oExcelFile.ActiveWorkbook.SaveAs(Filename:=path, FileFormat:=Excel.XlFileFormat.xlOpenXMLWorkbook, CreateBackup:=False, Local:=True)
使用以下命令:
oExcelFile.Workbooks.OpenText(Filename:=strFolderPath, Local:=True)
oExcelFile.ActiveWorkbook.SaveAs(Filename:=path, FileFormat:=Excel.XlFileFormat.xlOpenXMLWorkbook, CreateBackup:=False)
再次感谢您的帮助!:) 因此,我不知道是否必须有答案才能将主题标记为已解决,但如果是这样的话,我在评论中找到了解决方案: 不使用saveAs函数将csv文件保存为excel,而是使用OpenText方法,Local:=True;最后保存为xlsx,不带特定参数: 而不是:
oExcelFile.Workbooks.Open(strFolderPath)
oExcelFile.ActiveWorkbook.SaveAs(Filename:=path, FileFormat:=Excel.XlFileFormat.xlOpenXMLWorkbook, CreateBackup:=False, Local:=True)
使用以下命令:
oExcelFile.Workbooks.OpenText(Filename:=strFolderPath, Local:=True)
oExcelFile.ActiveWorkbook.SaveAs(Filename:=path, FileFormat:=Excel.XlFileFormat.xlOpenXMLWorkbook, CreateBackup:=False)
再次感谢您的帮助!:) 我很难理解。看起来您打开了该文件,然后将其另存为Excel XML。我不认为Excel XML使用分隔符,它使用XML。您是指CSV输入的分隔符,还是打算将其保存为CSV而不是XML?您将从CSV转换为xlsx,对吗?那么你的问题是什么时候打开csv文件?然后查看OpenText方法:
oExcelFile.Workbooks.OpenText(文件名:=strFolderPath,本地:=True,分号:=True)
。也许不需要本地和分号,但值得一试。看看发生了什么你好,我的英语不好,很抱歉;是的,我正在尝试将带有半冒号分隔符的CSV文件转换为.xlsx,但问题是vb.net选择coma作为分隔符来填充单元格,而不是分号,无论我使用SaveAs方法尝试了什么@非常感谢,它工作得非常好!单独查看这些参数后,分号似乎没有任何作用,但使用OpenText方法解决了这个问题!我很难理解。看起来您打开了该文件,然后将其另存为Excel XML。我不认为Excel XML使用分隔符,它使用XML。您是指CSV输入的分隔符,还是打算将其保存为CSV而不是XML?您将从CSV转换为xlsx,对吗?那么你的问题是什么时候打开csv文件?然后查看OpenText方法:oExcelFile.Workbooks.OpenText(文件名:=strFolderPath,本地:=True,分号:=True)
。也许不需要本地和分号,但值得一试。看看发生了什么你好,我的英语不好,很抱歉;是的,我正在尝试将带有半冒号分隔符的CSV文件转换为.xlsx,但问题是vb.net选择coma作为分隔符来填充单元格,而不是分号,无论我使用SaveAs方法尝试了什么@非常感谢,它工作得非常好!单独查看这些参数后,分号似乎没有任何作用,但使用OpenText方法解决了这个问题!