【问题标题】:Export from Excel to text file without line breaks从 Excel 导出到没有换行符的文本文件
【发布时间】:2009-10-27 22:05:04
【问题描述】:
我有一个只有 1 列的常规 Excel 电子表格。我想将其导出到带有分隔符的文本文件。我对分隔列不感兴趣,因为我只有一个。我关心的是用分隔符而不是换行符导出,这样我的最终结果就是一个简单的列表,比如“item1”、“item2”、“item3”……等等。 item1、item2 和 item3 在我的 Excel 文件中的同一列中的不同行中。是否可以直接从 Excel 执行此操作?我只能得到带有换行符的最终文件。谢谢!
【问题讨论】:
标签:
excel
text
csv
line-breaks
【解决方案1】:
您需要使用“VBA”循环遍历该列中的单元格并将其内容打印到文件中。
【解决方案2】:
如果您想快速而不优雅,只需使用右侧的单元格连接分隔符(例如,分号)。假设您的数据从 A2 开始,将其放入 B2:
=A1
然后把这个放在B3中并填写:
=B2&";"&A3
你想要的文字在B列的底部单元格中。
【解决方案3】:
您可能希望使用 ADO 和 GetString。
Dim cn As Object
Dim rs As Object
strFile = Workbooks(1).FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
strSQL = "SELECT F1 FROM [Sheet1$]"
rs.Open strSQL, cn
str = rs.GetString(2,,"|")
更多信息:http://www.w3schools.com/ADO/met_rs_getstring.asp
【解决方案4】:
如果您不想要 vba 解决方案并使用 max. 256 行,您可以复制使用过的单元格并将它们转置到 A1 中的不同工作表中。
现在所有值都在一行中,您可以将工作表导出/保存为 *.csv。单元格值将用分号分隔,但不会被引用!您的文本编辑器应该能够将; 替换为" ;"。
VBA 循环是更好的解决方案。