• 第十七篇: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文件
  • 相关阅读:
    GDB 用法
    C编程规范
    PHP面向对象
    cron定时任务
    Apatche配置基础
    正则表达式笔记
    PHP在windows下命令行方式
    面试题
    struts与ajax的关系
    ORACLE DUAL表详解
  • 原文地址:https://www.cnblogs.com/yb38156/p/9821953.html
Copyright © 2020-2023  润新知