You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Excel文件转换为单列格式的CSV文件?

解决Excel转CSV时多列合并为单列的问题

直接将Excel另存为CSV只会保留原有列结构,无法自动合并多列。以下是几种高效的解决方法:

方法一:公式合并后导出

  • 在Excel空白列(例如D列)输入合并公式,按需选择分隔符拼接多列内容:
    =A1&","&B1&","&C1  // 用逗号分隔,可替换为分号、空格等
    
  • 下拉填充公式到所有数据行,确保每一行多列内容合并为单个单元格
  • 选中合并后的列,右键选择「粘贴为值」,清除公式仅保留文本
  • 复制该列内容,粘贴到记事本中,保存为后缀为.csv的文件

方法二:Power Query批量合并

  • 选中需要合并的所有列,点击顶部菜单栏「数据」→「从表格/区域」(若提示创建表,勾选「我的表格有标题」)
  • 在Power Query编辑器中,选中所有目标列,点击「转换」→「合并列」
  • 在弹出窗口选择分隔符,设置合并后的列名,点击确定
  • 点击「关闭并上载」,将合并后的表格导出为CSV格式(「文件」→「另存为」→ 选择CSV格式)

方法三:VBA脚本一键生成CSV

  • 按下Alt+F11打开VBA编辑器,右键当前工作簿→「插入」→「模块」
  • 粘贴以下代码(可根据实际列数调整For j = 1 To 3中的数字):
    Sub MergeColumnsToCSV()
        Dim ws As Worksheet, newWs As Worksheet
        Dim lastRow As Long, outputRow As Integer
        Dim i As Integer, j As Integer
        
        Set ws = ActiveSheet
        lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
        Set newWs = Sheets.Add(After:=ws)
        newWs.Name = "MergedResult"
        outputRow = 1
        
        For i = 1 To lastRow
            Dim mergedContent As String
            mergedContent = ""
            ' 合并第1至第3列,可修改列数范围
            For j = 1 To 3
                If j > 1 Then mergedContent = mergedContent & ","
                mergedContent = mergedContent & ws.Cells(i, j).Value
            Next j
            newWs.Cells(outputRow, 1).Value = mergedContent
            outputRow = outputRow + 1
        Next i
        
        ' 自动保存为CSV
        newWs.SaveAs Filename:=ThisWorkbook.Path & "\合并结果.csv", FileFormat:=xlCSV
    End Sub
    
  • 点击运行按钮(绿色三角),脚本会自动生成合并后的CSV文件存放在当前工作簿目录下

注意事项

  • 如果合并内容本身包含逗号,建议使用分号;作为分隔符,或者给内容添加双引号(例如=CHAR(34)&A1&CHAR(34)&","&CHAR(34)&B1&CHAR(34)),避免CSV解析时出现列错乱
  • 若导出后出现编码问题,可在记事本打开CSV文件,选择「另存为」时设置编码为UTF-8

内容的提问来源于stack exchange,提问作者user9889520

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:25:20