将数据从Excel传输到MySQL服务器数据库?

我有一个相对复杂的Excel表,其中列开始在A和结束在BB和行开始5,结束于203。

我想要做的是告诉MySQL,每一列数据(带有我没有在工作表中指定的标题)应该从第5行开始,到第203行结束,并且具体说明我想要传输哪些列。 我该怎么做?

谢谢您的帮助!

编辑:203行下面有不相关的数据,我不希望被采取。 还有空白栏,所以我需要避免这些。

首先,将您的Excel表格保存为CSV。

下一个。 创build一个黑洞表来读取数据到:

DROP TABLE IF EXISTS `test`.`import_excel`; CREATE TABLE `test`.`import_excel` ( `A` int(10) unsigned NOT NULL, `B` varchar(45) NOT NULL, `C` varchar(45) NOT NULL, `D` varchar(45) NOT NULL, `E` varchar(45) NOT NULL, ..... `BB` varchar(45) NOT NULL ) ENGINE=BLACKHOLE DEFAULT CHARSET=latin1; 

用一行创build一个简单的柜台表。

 DROP TABLE IF EXISTS `test`.`counter`; CREATE TABLE `test`.`counter` ( id int(10) unsigned NOT NULL PRIMARY KEY, `count` int(10) unsigned NOT NULL, `max_count` int(10) unsigned NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1; REPLACE INTO counter VALUES (1,0,(203-5)); 

在黑洞桌上创build一个触发器

 DELIMITER $$ CREATE TRIGGER ai_import_excel_each AFTER INSERT ON import_excel FOR EACH ROW BEGIN DECLARE rows_left integer; SELECT max_count - (`count` + 1) INTO rows_left FROM counter WHERE id = 1; IF rows_left > 0 THEN BEGIN //count the row_number you're in. UPDATE counter SET `count` = `count` + 1 WHERE id = 1; //Interpret the data and insert it into the proper tables. //This is just an example INSERT INTO real_table (a,b,c) VALUES (new.a, new.b, new.c); INSERT INTO real_table2 (a,b,c) VALUES (NULLIF(new.d,''), new.e, new.c); //You can change the data in anyway you like. END; END IF; END $$ DELIMITER ; 

最后,将第5至203行导入到import_excel表中。

 LOAD DATA INFILE 'c:/excel.csv' INTO TABLE import_excel FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 4 LINES; 

前4行将被LOAD DATA INFILE忽略,最后一行将被触发器除去。