如何将 Excel 的多列导出为 CSV 或 TEXT

Posted

技术标签:

【中文标题】如何将 Excel 的多列导出为 CSV 或 TEXT【英文标题】:How to export multiple columns of Excel to CSV or TEXT 【发布时间】:2015-03-09 11:57:12 【问题描述】:

按照我的问题Excel merge all columns with VBA

我尝试使用宏将超过 255 列和 2072 行移动到 1 列中,但不知何故 Excel 无法处理此问题并停止宏。由于缺乏资源,请在http://support.microsoft.com/kb/2655178 中进一步解释。这一定是一个错误,因为当我在某个列之后运行我的宏时,它会随机复制选定列的空单元格。让我无法删除行或撤消任何可能的方法,我不得不关闭 XLSM 工作表。

我试图通过将 XLSM 表从 MS Excel 2010 导入 MS Access 2010 来找到解决方法。不幸的是,MS Access 也有一个限制,不能导入超过 255 列!由于相同的 255 限制限制,我也未能将 XLSM 表与 MS 访问表链接。

注意:我的工作表不包含任何标题

现在我想将电子表格中的每一列保存或导出到文本文档(参见示例),以便以后通过拖放到 MS Access 或 php DB 或 Excel 中更轻松地导入它。

导出示例

column A ; column B ; column C; column D (etc. until column WC)

另存为

export0001.txt
export0002.txt
export0003.txt
export0004.txx
(etc.........)
export0999.txt

据我所知,没有内置的 Excel 命令或函数可以做我想做的事情。有一个我可以使用的 VBA 代码

Set NewBook = Workbooks.Add 
Do 
    fName = Application.GetSaveAsFilename 
Loop Until fName <> False 
NewBook.SaveAs Filename:=fName

https://msdn.microsoft.com/en-us/library/office/ff841185.aspx

【问题讨论】:

OP 的自我回答中引用的跨站点重复:superuser.com/questions/541460/… 【参考方案1】:

参考:https://superuser.com/questions/541460/export-office-excel-table-to-csv-using-a-macro

Sub ExportTable()

    Dim wb As Workbook, wbNew As Workbook
    Dim ws As Worksheet, wsNew As Worksheet
    Dim wbNewName As String


   Set wb = ThisWorkbook
   Set ws = ActiveSheet

   Set wbNew = Workbooks.Add

   With wbNew
       Set wsNew = wbNew.Sheets("Sheet1")
       wbNewName = ws.ListObjects(1).Name
       ws.ListObjects(1).Range.Copy
       wsNew.Range("A1").PasteSpecial Paste:=xlPasteAll
       .SaveAs Filename:=wb.Path & "\" & wbNewName & ".csv", _
             FileFormat:=xlCSVMSDOS, CreateBackup:=False
   End With

End Sub

【讨论】:

以上是关于如何将 Excel 的多列导出为 CSV 或 TEXT的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JSON 导出为 CSV 或 Excel - Angular 2

如何使用Python asammdf将MDF导出到Excel或CSV

SAS将数据集导出为csv或excel,保留换行符

如何将带有中文字符的 Excel 文件导出为 CSV?

将php数组数据导出为CSV或Excel

Office表中如何把一定范围单元格的内容多列数据去除空值以TXT文本方式导出?