我有一个巨大的地址和详细信息列表,我需要转换成Excel电子表格,我认为最好的方法是读取数据,然后编写第二个文档,分隔行,以便它们以制表符分隔,同时识别空行(数据条目之间)以保留每个单独的地址。
格式为:
AddressA1
AddressB1
Postcode1
名1
PhoneNumber1
AddressA2
AddressB2
Postcode2
名称2
名称2
PhoneNumber2
AddressA3
AddressB3
Postcode3
NAME3
PhoneNumber3
因此,当公司有多个名称时,也会遇到困难,但如果有必要,我可以手工格式化(理想情况下,他们希望彼此使用相同的地址)。
然后,生成的文本文档希望以制表符分隔: 姓名|地址A |地址B |邮政编码|电话号码
我认为这在一个简单的.bat命令中最容易做到?或者我应该在excel中打开列表并通过该脚本运行脚本..?
我在想我是否可以通过它将每个条目添加到数组的位置($ address $ name等)然后我可以通过编写$name[i]
tab <来创建新的文本文件/ em> $address[$i]
等
有数百个条目并且手动放入是证明......很难。
我在MEL(基本上是C ++)方面有一些经验,所以我一般都理解编程,但在.bat
和Excel(VB?)如何处理和定义空行和制表符方面有些不知所措。
答案 0 :(得分:0)
第一步是将数据导入Excel文件。导入数据后,我们可以重新打包以满足您的规格要求。第一步:
Sub BringFileIn()
Dim TextLine As String, CH As String
Close #1
Open "C:\TestFolder\question.txt" For Input As #1
Dim s As String
Dim I As Long, J As Long
J = 1
I = 1
Do While Not EOF(1)
Line Input #1, TextLine
Cells(I, J) = TextLine
I = I + 1
Loop
Close #1
End Sub
答案 1 :(得分:0)
任何可以进行正则表达式搜索和跨多行替换的文本编辑器都可以很好地完成这项工作。
我编写了一个hybrid JScript/batch utility called REPL.BAT执行正则表达式搜索并替换stdin并将结果写入stdout。它是纯粹的脚本,可以在XP前面的任何现代Windows机器上运行 - 不需要第三方可执行文件。完整的文档嵌入在脚本中。
假设REPL.BAT位于您当前的目录中,或者更好,位于PATH中的某个位置,那么:
type file.txt|repl "\r?\n" "\t" mx|repl "\t\t" "\n" x|repl "^(([^\t]*\t){4})([^\t]*)$" "$1\t$3" x >newFile.txt
以上修改了3个步骤的文件,并将结果写入新文件,保留原文:
答案 2 :(得分:0)
这是一种仅使用Word和Excel的方法。我使用了您发布的数据。我假设Name2是唯一的可选字段。
这就是Word中的样子:
AddressA1;AddressB1;Postcode1;Name1;PhoneNumber1|AddressA2;AddressB2;Postcode2;Name2;Name2;PhoneNumber2|AddressA3;AddressB3;Postcode3;Name3;PhoneNumber3||
然后将文本转换为表格(插入 - &gt;表格 - &gt;将文本转换为表格),分隔符;这给出了3列(加上2个空白行)的1列。
然后复制表格。
现在在Excel中: