我有一个 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。这些语言中的任何一种都可以轻松读取文本文件,将字段拆分为数组,并以您想要的任何方式将字段发布到数据库中。
或者,您可以在不编写代码的情况下执行此操作,但需要执行以下步骤:
按原样将 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);
然后将每个给定供应商的所有数据复制到您的(供应商,金额)表中。
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;
最后,删除原样表。
drop table invoices_asis;
关于mysql 试图导入一个奇怪的格式 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39354944/