第十七篇:csv拆分、csv轉excel方法


首先對微軟的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窗口,貼上如下代碼:

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文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM