TXT 文件到 Excel 列
TXT file to Excel columns
我有一个包含 1031 家公司信息的 txt 文件。我需要用 header 名称 NAME- Address-CONTACT-TEL-FAX-MOB-WEB-EMAIL 将它们放入 Excel table。由于有1031家公司,我不想一一列举。在 Excel table 中获取它们的最简单方法是什么?
"Company Name"
"Address ; XXXXXXXXX"
"Contact ; XYXYXYXYX"
"Tel ; 1234567"
"Fax ; 123456"
"Mob ; 12345555"
"Web ;www.www.com"
"E-Mail ;xxxx@xx.com"
我建议您执行以下步骤(前提是每个块的行数都相同)。
添加一列数字:
+----+----------+---------------------------------------+
| | 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"、"Contact"、传真”或“网络”)。粘贴到 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 |
+---+--------------+---------------------+-----------------------------------+--------------+----------------+------------------+---------------------+
简介
In this answer I will explain how to transphorm your data into a CSV
Each line of the file is a data record. Each record consists of one or more fields, separated by semi colon as comma is often use as decimal separator.
因此最后的信息将如下所示:
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/. Fields with embedded commas or double-quote characters must be quoted.
1997,Ford,E350,"Super, luxurious truck"
2/. Each of the embedded double-quote characters must be represented by a pair of double-quote characters.
1997,Ford,E350,"Super, ""luxurious"" truck"
3/. Fields with embedded line breaks must be quoted (however, many CSV implementations do not support embedded line breaks).
1997,Ford,E350,"Go get one now
they are going fast"
如何知道我是否需要封装一个字段?
使用编辑器的计数功能,计数 "
,;
检查回车符 return 也可能是一件好事。如果有none,则不需要封装ᕕ(ᐛ)ᕗ
格式化过程
我会选择封装所有 Field,这样我就不必为 Stupid Data 而烦恼了。我们将在这里用 ;
替换每个 "header" 的原始数据。
要将一家公司的所有信息都放在一行中,您可以使用鼠标 select header 和换行。
1。重新格式化文本:
- 复制你的文件并处理副本,这样你就有了备份。
用 Notepad++/ SublimeText 打开你的文件
将 : \r\nAddress :
的每次迭代替换为 "; "
或 ;
对您的每个 Header 执行相同的操作文件。
the \r\n
is because you have a line feed between company name and adress. And you want every information to be on one line.
在每行的开头和结尾添加一个"
2。在 Excel.
中导入
- 复制数据到Excel
- 在“数据”选项卡 > 转换
选择:
- 分隔 > 下一个
- 分隔符 =
;
文本指示符 = "
- Select 你所有的栏目一一转成文本!(你不希望 phone 数字失去前导 0)
- 完成
- 添加你的header
如果另存为 .csv
,所有第 2 部分都将毫无用处。我只是想向您展示 Convert Assistant。以及如何正确处理其中包含 ;
、'
的地址以及当您拥有 Fax :Mob : 12345555
等数据时。如果你有奇怪的数据,你可以添加转义。
免责声明:
始终在副本上工作,通过计数 "
和 ;
和其他定界符 Excel 开始所有这些操作可能会错过理解。逃离他们。
顺便说一句,这是比 SO 更多的超级用户。
奖金:
如果您熟悉一种编程语言,请使用他在 String remplace 中的构建在 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()+'"';
}
我有一个包含 1031 家公司信息的 txt 文件。我需要用 header 名称 NAME- Address-CONTACT-TEL-FAX-MOB-WEB-EMAIL 将它们放入 Excel table。由于有1031家公司,我不想一一列举。在 Excel table 中获取它们的最简单方法是什么?
"Company Name"
"Address ; XXXXXXXXX"
"Contact ; XYXYXYXYX"
"Tel ; 1234567"
"Fax ; 123456"
"Mob ; 12345555"
"Web ;www.www.com"
"E-Mail ;xxxx@xx.com"
我建议您执行以下步骤(前提是每个块的行数都相同)。
添加一列数字:
+----+----------+---------------------------------------+
| | 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"、"Contact"、传真”或“网络”)。粘贴到 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 |
+---+--------------+---------------------+-----------------------------------+--------------+----------------+------------------+---------------------+
简介
In this answer I will explain how to transphorm your data into a CSV
Each line of the file is a data record. Each record consists of one or more fields, separated by semi colon as comma is often use as decimal separator.
因此最后的信息将如下所示:
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/. Fields with embedded commas or double-quote characters must be quoted.
1997,Ford,E350,"Super, luxurious truck"
2/. Each of the embedded double-quote characters must be represented by a pair of double-quote characters.
1997,Ford,E350,"Super, ""luxurious"" truck"
3/. Fields with embedded line breaks must be quoted (however, many CSV implementations do not support embedded line breaks).
1997,Ford,E350,"Go get one now they are going fast"
如何知道我是否需要封装一个字段?
使用编辑器的计数功能,计数 "
,;
检查回车符 return 也可能是一件好事。如果有none,则不需要封装ᕕ(ᐛ)ᕗ
格式化过程
我会选择封装所有 Field,这样我就不必为 Stupid Data 而烦恼了。我们将在这里用 ;
替换每个 "header" 的原始数据。
要将一家公司的所有信息都放在一行中,您可以使用鼠标 select header 和换行。
1。重新格式化文本:
- 复制你的文件并处理副本,这样你就有了备份。
用 Notepad++/ SublimeText 打开你的文件
将 :
\r\nAddress :
的每次迭代替换为"; "
或;
对您的每个 Header 执行相同的操作文件。the
\r\n
is because you have a line feed between company name and adress. And you want every information to be on one line.在每行的开头和结尾添加一个
"
2。在 Excel.
中导入- 复制数据到Excel
- 在“数据”选项卡 > 转换
选择:
- 分隔 > 下一个
- 分隔符 =
;
文本指示符 ="
- Select 你所有的栏目一一转成文本!(你不希望 phone 数字失去前导 0)
- 完成
- 添加你的header
如果另存为 .csv
,所有第 2 部分都将毫无用处。我只是想向您展示 Convert Assistant。以及如何正确处理其中包含 ;
、'
的地址以及当您拥有 Fax :Mob : 12345555
等数据时。如果你有奇怪的数据,你可以添加转义。
免责声明:
始终在副本上工作,通过计数 "
和 ;
和其他定界符 Excel 开始所有这些操作可能会错过理解。逃离他们。
顺便说一句,这是比 SO 更多的超级用户。
奖金:
如果您熟悉一种编程语言,请使用他在 String remplace 中的构建在 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()+'"';
}