MySQL试图导入奇数格式的CSV

我有一个excel CSV文件,客户正在录制发票。 为每个供应商制作了一个新的栏目,并在每栏下面加上了金额。

喜欢这个:

ABC Company Jacks Garage XYZ Company 123.45 223.22 123.11 423.11 10.22 11.21 

等我试图猜测如何获得这两列(供应商,金额),所以我可以将该数据导入到实际的表。 有大约200个供应商这样做手动剪切和粘贴将永远是工作。

我可以做一个循环以某种方式,并将信息插入2列表?

我会用几乎任何语言编写一个简单的脚本来完成这个任务,例如Python,PHP,Ruby甚至是Perl。 任何这些语言都可以轻松地读取文本文件,将字段拆分为数组,然后将字段以任何您想要的方式发布到数据库中。

或者,您可以在不编写代码的情况下执行此操作,但需要执行以下步骤:

  1. 将CSV文件原样加载到表中。

     create table invoices_asis ( rownum serial primary key, abc_company_amount numeric(9,2), jacks_garage_amount numeric(9,2), xyz_company_amount numeric(9,2) ); load data infile 'invoices.csv' into table invoices_asis ignore 1 lines (abc_company_amount, jacks_garage_amount, xyz_company_amount); 
  2. 然后将每个给定供应商的所有数据复制到您的(供应商,金额)表中。

     create table invoices ( invoice_id serial primary key, vendor varchar(20), amount numeric(9,2) ); insert into invoices (vendor, amount) select 'ABC Company', abc_company_amount from invoices_asis; insert into invoices (vendor, amount) select 'Jacks Garage', jacks_garage_amount from invoices_asis; insert into invoices (vendor, amount) select 'XYZ Company', xyz_commpany_amount from invoices_asis; 
  3. 最后,放下原来的表格。

     drop table invoices_asis; 

我想你想要的是“不透明”,为此有许多选项( 例如对于Excel)。

在最左边插入一个空白列,然后在4.的例子中包含你的数据。 在6.将Row移动到Row上方的ROWS中。 双击Grand Total并删除左边的列。