如何将Excel工作簿中的所有工作表保存为一个文本文件?

我有一个Excell工作簿与多个工作表。 我想将所有工作表的文本导出到一个文本文件。 我已经看到了多个解决scheme(主要是使用VBA – 下面的例子)将每个工作表导出为自己的文本文件,但还没有find解决scheme将所有工作表导出为一个文本文件。 任何想法如何使用VBA(或者也许是Python)来完成?

Sub ExportSheetsToText() Dim xWs As Worksheet Dim xTextFile As String For Each xWs In Application.ActiveWorkbook.Worksheets xWs.Copy xTextFile = CurDir & "\" & xWs.Name & ".txt" Application.ActiveWorkbook.SaveAs Filename:=xTextFile, FileFormat:=xlText Application.ActiveWorkbook.Saved = True Application.ActiveWorkbook.Close Next End Sub 

生成这些文本文件后,可以使用Windows Command Prompt将多个文本文件轻松合并为一个文本文件。 假设所有的文件名都有一些名称模式。 即*.txt但我build议你给他们一些额外的模式在他们的名字,如temp_something.txt:

 xTextFile = CurDir & "\temp_" & xWs.Name & ".txt" 

然后在命令提示符下将它们合并成一个文本文件,如下所示:

 type temp_*.txt >> mergedFile.txt 

要么

 copy temp_*.txt mergedFile.txt 

如果你想完全自动化VBA例程中的操作,你可以在里面集成命令,如下所示:

 For Each xWs In Application.ActiveWorkbook.Worksheets xWs.Copy xTextFile = CurDir & "\temp_" & xWs.Name & ".txt" Application.ActiveWorkbook.SaveAs Filename:=xTextFile, FileFormat:=xlText Application.ActiveWorkbook.Saved = True Application.ActiveWorkbook.Close Next Dim shl As Object: Set shl = CreateObject("WScript.shell") shl.CurrentDirectory = CurDir shl.Run "cmd /C copy temp_*.txt " & ThisWorkbook.name & ".txt" ' merge the temporary text files shl.Run "cmd /C del temp_*.txt" ' clean up the temporary text files 

最后,您将得到一个与您的工作簿同名的文本文件以及扩展名.txt