首先對微軟的office功能表示敬佩!多是這些辦公軟件太過日常化,因此體會不到他有多牛!
csv格式數據之前沒接觸過,百度百科定義,Comma-Separated Values,CSV,逗號分隔值,或者符號分隔值
分隔符號通常是逗號,文件以純文本形式存儲表格數據,所以能存儲很是大數據量的數據。Excel03之前的只能存儲65536行,256列
07能存儲1048576行 ,16384列,csv能存儲得更多。若是直接用Excel打開csv,顯示的是一行行的逗號連起來的文本值
首先記錄下csv拆分,這裏Excel功能如此強大,就不要用java的死方法來想作了
有一個100萬行的csv文件,把他轉成5萬行一個的小csv文件
步驟以下:
首先用Excel2010(或以上版本)打開這個csv文件,Alt+F11 打開VBA窗口,貼上以下代碼:java
Sub
cfb()
Dim
r, c, i, LineCount, FileCount , bt
As
Long
r = Range(
"A"
& Rows.Count).
End
(xlUp).Row
c = Cells(1, Columns.Count).
End
(xlToLeft).Column
bt = 1
'標題行數
LineCount= 50000
'每一個文件的行數
FileCount = IIf(r - bt
Mod
50000, Int((r - bt) / LineCount), Int((r - bt) / LineCount) + 1)
For
i = 1
To
FileCount
Workbooks.Add
Application.DisplayAlerts =
False
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path &
"\" & Format(i, String(Len(FileCount), 0)) & "
.csv"
Application.DisplayAlerts =
True
ThisWorkbook.ActiveSheet.Range(
"A1"
).Resize(bt, c).Copy ActiveSheet.Range(
"A1"
)
ThisWorkbook.ActiveSheet.Range(
"A"
& bt + i * LineCount+ 1).Resize(LineCount, c).Copy _
ActiveSheet.Range(
"A"
& bt + 1)
ActiveWorkbook.Close
True
Next
End
Sub
這個東西彷佛叫作「宏」,你們確定都聽過,執行下,在同級目錄下開始生成以1.csv,2.csv……20.csv的Excel表格,每一個5萬行
將csv批量轉爲Excel的方法跟這個大致相同,也要用到VBA和宏
首先將全部的csv文件放在同一文件夾裏,在這個文件夾裏新建一個Excel,好比test.xls,打開test.xls,Alt+F11打開VBA窗口
貼上以下代碼:
Sub
CSV2XLS()
Dim
FilePath, MyFile, iPath
As
String
iPath = ThisWorkbook.Path
MyFile = Dir(iPath &
"\*.CSV"
)
If
MyFile <>
""
Then
Do
On
Error
Resume
Next
If
MyFile = ThisWorkbook.Name
Then
MyFile = Dir
Workbooks.Open (iPath & "\" & MyFile)
MyFile = Replace(MyFile,
".csv"
,
".xls"
)
Name = "\" & MyFile
FilePath = iPath & Name
Application.ScreenUpdating =
False
ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:= _
xlNormal, CreateBackup:=
False
Workbooks(MyFile).Close
True
Application.ScreenUpdating =
True
MyFile = Dir
Loop
While
MyFile <>
""
End
If
End
Sub執行一下 同級目錄下就會生成對應名相同的.xls文件