天天看點

java csv轉excel_将CSV轉換為Excel表格

将CSV轉換為Excel表格

我正在嘗試将CS​​V檔案轉換為xls。

CSV檔案看起來像這樣:

410E 54B9 C700 0 0 0 0

但是當轉換完成的結果是

410E; 54B9; C700; 0; 0; 0; 0

Const xlDelimited = 1 Const xlTextQualifierDoubleQuote = 1 Const xlOpenXMLWorkbook = 51 Set xl = CreateObject("Excel.Application") xl.Workbooks.OpenText "C:\sssss.csv", , , xlDelimited _ , xlTextQualifierDoubleQuote, True, True, True, True, True, True, _ , Array(Array(1,2), Array(2,2), Array(3,2), Array(4,1), Array(5,2) _ , Array(6,1), Array(7,1), Array(8,1), Array(9,1), Array(10,1), Array(11,1)) Set wb = xl.ActiveWorkbook wb.SaveAs "C:ssss.xlsx", xlOpenXMLWorkbook, , , , False wb.Close xl.Quit

我想要它作為一個表。

Excel對于它接受的CSV非常特别。 将檔案重命名為.csv以外的檔案(例如C:\sssss.txt ),代碼應該按照您的預期工作。 否則,您需要更改檔案的内容(用逗号代替分号)以符合Excel的期望。

你使用了比你需要的更多的論據,這應該做的工作:

Workbooks.OpenText Filename:="C:\ssss.csv", _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, Space:=True

話雖如此,如果您在CSV中使用的空間字元types不是普通空格字元,則可能需要使用以下指令:

Workbooks.OpenText Filename:="C:\ssss.csv", _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, Other:=True, OtherChar:=" "

将CSV中的空格字元複制并粘貼到OtherChar之後的雙引号之間。

而且,正如Ansgar所說,如果檔案擴充名為.csv,那麼Excel将忽略所有這些規則,并以CSV格式打開該檔案。

您可以使用Name重命名該檔案,也可以繼續打開檔案并在導入後直接向列函數添加文本:

Range("A:A").TextToColumns Destination:=Range("A:A"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _ Semicolon:=False, Comma:=False, Space:=True, Other:=True, OtherChar:=";"

希望這可以幫助!