第十七篇: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窗口,贴上以下代码: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文件
相关文章
相关标签/搜索