TXT文件到Excel列

时间:2017-05-04 11:41:50

标签: excel data-conversion

我有一个包含1031家公司信息的txt文件。我需要将它们放入带有标题名称名称 - 地址 - 联系人 - 电话 - 传真 - MOB-WEB-EMAIL 的Excel表格中。由于有1031家公司我不想一个接一个地做。在Excel表格中获取所有内容的最简单方法是什么?

"Company Name"
"Address ; XXXXXXXXX"
"Contact ; XYXYXYXYX"   
"Tel ; 1234567"
"Fax ; 123456"  
"Mob ; 12345555"
"Web ;www.www.com"  
"E-Mail ;xxxx@xx.com"

2 个答案:

答案 0 :(得分:0)

我建议您执行以下步骤(仅当每个块具有相同的行数时)。

添加一个包含数字的列:

+----+----------+---------------------------------------+
|    |    A     |                   B                   |
+----+----------+---------------------------------------+
|  1 | Column B | Column B                              |
|  2 | 1        | ompany Name                           |
|  3 | 2        |                                       |
|  4 | 3        | Address : XXXXXXXXX                   |
|  5 | 4        | Contact : XYXYXYXYX Tel : 1234567     |
|  6 | 5        | Fax : 123456 Mob : 12345555           |
|  7 | 6        | Web :www.www.com  E-Mail :xxxx@xx.com |
|  8 |          |                                       |
|  9 |          |                                       |
| 10 | 1        | Company Name                          |
| 11 | 2        |                                       |
| 12 | 3        | Address : XXXXXXXXX                   |
| 13 | 4        | Contact : XYXYXYXYX Tel : 1234567     |
| 14 | 5        | Fax : 123456 Mob : 12345555           |
| 15 | 6        | Web :www.www.com  E-Mail :xxxx@xx.com |
| 16 |          |                                       |
| 17 | 1        | Company Name                          |
| 18 | 2        |                                       |
| 19 | 3        | Address : XXXXXXXXX                   |
| 20 | 4        | Contact : XYXYXYXYX Tel : 1234567     |
| 21 | 5        | Fax : 123456 Mob : 12345555           |
| 22 | 6        | Web :www.www.com E-Mail :xxxx@xx.com  |
| 23 |          |                                       |
| 24 |          | .                                     |
| 25 |          | .                                     |
| 26 |          | .                                     |
| 27 |          | .                                     |
| 28 | 1        | Company Name                          |
| 29 | 2        |                                       |
| 30 | 3        | Address : XXXXXXXXX                   |
| 31 | 4        | Contact : XYXYXYXYX Tel : 1234567     |
| 32 | 5        | Fax : 123456 Mob : 12345555           |
| 33 | 6        | Web :www.www.com E-Mail :xxxx@xx.com  |
+----+----------+---------------------------------------+

考虑最好的方法是对第一个块进行数字化(单元格A2:A7),然后复制A2:A7并在B列中过滤包含公司名称的单元格(或不包含“Adress”,“联系人”的单元格“,传真”或“网络”。粘贴在A列中,您将拥有所有编号的行。

现在你将矩阵过滤行ID 1,2,3,...转换为你会发现这个

+---+--------------+---------------------+-----------------------------------+--------------+----------------+------------------+---------------------+
|   |      A       |          B          |                 C                 |      D       |       E        |        F         |          G          |
+---+--------------+---------------------+-----------------------------------+--------------+----------------+------------------+---------------------+
| 1 | ompany Name  | Address : XXXXXXXXX | Contact : XYXYXYXYX Tel : 1234567 | Fax : 123456 | Mob : 12345555 | Web :www.www.com | E-Mail :xxxx@xx.com |
| 2 | Company Name | Address : XXXXXXXXX | Contact : XYXYXYXYX Tel : 1234567 | Fax : 123456 | Mob : 12345555 | Web :www.www.com | E-Mail :xxxx@xx.com |
| 3 | Company Name | Address : XXXXXXXXX | Contact : XYXYXYXYX Tel : 1234567 | Fax : 123456 | Mob : 12345555 | Web :www.www.com | E-Mail :xxxx@xx.com |
| 4 | Company Name | Address : XXXXXXXXX | Contact : XYXYXYXYX Tel : 1234567 | Fax : 123456 | Mob : 12345555 | Web :www.www.com | E-Mail :xxxx@xx.com |
+---+--------------+---------------------+-----------------------------------+--------------+----------------+------------------+---------------------+

答案 1 :(得分:0)

简介

  

在这个答案中,我将解释如何将您的数据转换为CSV    该文件的每一行都是一个数据记录。每个记录由一个或多个字段组成,以分号分隔,因为逗号通常用作小数分隔符。

所以最后信息如下:

Company Name;XXXXXXXXX;XYXYXYXYX;1234567;123456;12345555;;xxxx@xx.com
Company Name;XXXXXXXXX;XYXYXYXYX;1234567;123456;12345555;www.www.com;xxxx@xx.com
Company Name;XXXXXXXXX;XYXYXYXYX;1234567;123456;12345555;www.www.com;xxxx@xx.com

"Company Name"; "XXXXXXXXX"; "XYXYXYXYX"; "1234567"; "123456"; "12345555"; ""; "xxxx@xx.com"
"Company Name"; "XXXXXXXXX"; "XYXYXYXYX"; "1234567"; "123456"; "12345555"; "www.www.com"; "xxxx@xx.com"
"Company Name"; "XXXXXXXXX"; "XYXYXYXYX"; "1234567"; "123456"; "12345555"; "www.www.com"; "xxxx@xx.com"

根据您的数据,您可以选择使用“”封装文本。因为Csv规则说:

  

1 /。必须引用带有嵌入式逗号或双引号字符的字段。   1997,Ford,E350,"Super, luxurious truck"
  2 /。每个嵌入的双引号字符必须用一对双引号字符表示   1997,Ford,E350,"Super, ""luxurious"" truck"
  3 /。必须引用包含嵌入换行符的字段(但是,许多CSV实现不支持嵌入换行符)   1997,Ford,E350,"Go get one now they are going fast"

如何知道我是否需要封装字段?

使用编辑器的计数功能,并计算";检查地址中的回车也是一件好事。如果没有,则无需封装ᕕ(ᐛ)ᕗ

格式化过程

我将选择封装所有Field,这样我就不必费心去做Stupid Data了。我们将在此处通过;重新填充原始数据的每个“标题”。 要在一行中创建有关公司的所有信息,您可以使用鼠标选择标题和新换行符。

1。重新格式化文本:

  • 复制文件并处理副本,以便备份。
  • 使用Notepad ++ / SublimeText

  • 打开文件
  • \r\nAddress :"; "重新执行;的每次迭代。对文件中的每个标题执行相同操作。

      

    \r\n是因为您在公司名称和地址之间有换行符。而且您希望每条信息都在一条线上。

  • 在每行的开头和结尾添加"

2。在Excel中导入。

  • 在Excel中复制数据
  • 在数据标签中>转换

选择:

  • 定界>下一步
  • 分隔符= ;文字指示符= "
  • 逐个选择所有列并将其转换为文本!(您不希望电话号码松散前导0)
  • 完成
  • 添加标题

如果您保存为.csv,则所有第2部分都无用。我只想告诉你转换助手。以及如何使用;'Fax :Mob : 12345555等数据处理正确的地址。如果您有奇怪的数据,可以添加转义。

Disclamer:
始终处理副本,按计数";启动所有这些操作,其他分隔符Excel可能会错过理解。逃避它们。
顺便说一句,这比超级用户更胜一筹。

加成:

如果您熟悉编程语言,请使用他在字符串重新编写中的构建来在1秒内格式化您的文档。 用这样的东西:

        static void CSVformat() {
            string Input = 
@"Company Name

Address : XXXXXXXXX
Contact : XYXYXYXYX Tel : 1234567
Fax : 123456    Mob : 12345555
Web :www.www.com    E-Mail :xxxx@xx.com


Company Name

Address : XXXXXXXXX
Contact : XYXYXYXYX Tel : 1234567
Fax : 123456    Mob : 12345555
Web :www.www.com    E-Mail :xxxx@xx.com

Company Name

Address : XXXXXXXXX
Contact : XYXYXYXYX Tel : 1234567
Fax : 123456    Mob : 12345555
Web :www.www.com    E-Mail :xxxx@xx.com";
            var dd= clean(Input);            
        }

        static string clean(string s)
        {
            StringBuilder sb = new StringBuilder(s);

            sb.Replace(
@"

Address : ", "\"; \"");
            sb.Replace(
@"
Contact : ", "\"; \"");
            sb.Replace(
@"
Fax : ", "\"; \"");
            sb.Replace(
@"
Web :", "\"; \"");

            sb.Replace(" Tel : ", "\"; \"");
            sb.Replace("    Mob : ", "\"; \"");
            sb.Replace("    E-Mail :", "\"; \"");
            sb.Replace("\r\n\r\n\r\n", "\r\n");
            sb.Replace("\r\n\r\n", "\r\n");
            sb.Replace("\r\n", "\"\r\n\"");

            return '"'+sb.ToString()+'"';
        }