如何将单个工作表中的多行(在 excel 中)转换为多个 CSV 文件

Posted

技术标签:

【中文标题】如何将单个工作表中的多行(在 excel 中)转换为多个 CSV 文件【英文标题】:How to convert multiple rows (in excel) in single sheet into multiple CSV file 【发布时间】:2014-04-14 13:21:57 【问题描述】:

我想将多行(根据组)转换为多个 csv。 我在 excel 中的单张表包含近 3000 行和 5 列。现在我希望我的 excel 表中的每个组都转换为 csv 文件。

例如

1 ali Khan ali.khan@hotmail.com a1

2juliet ibm juliet.ibm@hotmail.com a1

3laura ann lura.ann@hotmail.com b1

4abcd ewqa abcd.ewqa@hotmail.com b1

5annia franics annia.franics@hotmail.com c1

现在我想根据组 (a1,b1,c1...) 将这些行提取到单独的 CSV 中。 每个组创建新的 csv。

只需要解决这个问题。如果您建议任何免费工具或任何代码都没关系。

【问题讨论】:

如果您需要我相信的一步解决方案,您将不得不编写一些 VBA 代码,但我只是按组名排序,然后将其保存为单个 CSV 文件,最后手动创建(复制/粘贴)其他 csv。我知道这不是一个优雅的 IT 解决方案,但它可以完成工作! 您需要持续解决方案还是一次性解决方案。另外,你试过什么? 我认为@elrado 有一个良好的开端,但我建议您(1)将带有FirstName LastName Email Group 的标题行添加到第 1 行,然后(2)使用Excel 的内置 Autofilter 功能可隐藏组的所有非成员,最后 (3) 将每个过滤后的组保存为 CSV 【参考方案1】:

使用此代码,您可以复制并粘贴到另一个工作表中并创建 CSV 文件。

Dim RowSt As Integer
Dim RowLs As Integer
Dim StriI As String
Dim StriL As String

RowSt = 4
RowLs = 4
StriI = Range("F" & RowLs).Value
StriL = Range("F" & RowLs).Value
While Range("F" & RowLs).Value <> ""
    StriL = Range("F" & RowLs).Value
    If StriL <> StriI Then
        Range("B" & RowSt & ":F" & RowLs - 1).Copy
        Sheets("Sheet2").Select
        Range("A1").Select
        ActiveSheet.Paste
        Selection.Clear
        Sheets("Sheet1").Select
        ActiveWorkbook.SaveAs Filename:="E:\0\A\" & StriI & ".csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
        StriI = StriL
        RowSt = RowLs
    End If
    RowLs = RowLs + 1
Wend
Range("B" & RowSt & ":F" & RowLs - 1).Copy
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
Selection.Clear
Sheets("Sheet1").Select
ActiveWorkbook.SaveAs Filename:="E:\0\A\" & StriI & ".csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
Range("A1").Select

【讨论】:

感谢您的帮助。到目前为止,我是手动完成的,但问题是,随着时间的推移数据在增加,这不是理想的解决方案。所以我必须想办法处理它。我将尝试使用你们发送的代码。

以上是关于如何将单个工作表中的多行(在 excel 中)转换为多个 CSV 文件的主要内容,如果未能解决你的问题,请参考以下文章

将许多 Excel 工作簿和工作表中的数据导入单个工作簿/表格

在 R 中拆分大型数据框并输出到单个 Excel 工作簿中的单独工作表中

如何将EXCEl中多张Sheet工作表转换成一个PDF

如何将EXCEl中多张Sheet工作表转换成一个PDF

如何将EXCEl中多张Sheet工作表转换成一个PDF

如何在单个查询中使用联接和聚合函数更新表中的多行