【发布时间】:2019-02-19 04:23:34
【问题描述】:
我有一个关于将 excel 单元格数据导入 sqlserver 数据库的问题。但我的 excel 数据如下所示:
ID|NAME |DAY1 |DAY2 |DAY3 |DAY4 |
--+--------+-------+-------+-------+-------+
1 |John Doe|shift-1|shift-1|shift-1|shift-1|
--------------------------------------------
2 |Alex |shift-2|shift-2|shift-2|shift-2|
--------------------------------------------
3 |McArthur|shift-3|shift-3|shift-3|shift-3|
--------------------------------------------
我的数据库格式如下所示:
DateTime|ID|NAME |SCHEDULE|
--------+--+--------+--------+
DAY1 |1 |John Doe|Shift-1 |
------------------------------
DAY1 |2 |Alex |Shift-2 |
------------------------------
DAY1 |3 |McArthur|Shift-3 |
------------------------------
DAY2 |1 |John Doe|Shift-1 |
------------------------------
DAY2 |2 |Alex |Shift-2 |
------------------------------
DAY2 |3 |McArthur|Shift-3 |
------------------------------
DAY3 |1 |John Doe|Shift-1 |
------------------------------
DAY3 |2 |Alex |Shift-2 |
------------------------------
DAY3 |3 |McArthur|Shift-3 |
------------------------------
DAY4 |1 |John Doe|Shift-1 |
------------------------------
DAY4 |2 |Alex |Shift-2 |
------------------------------
DAY4 |3 |McArthur|Shift-3 |
我试着写了一个代码,结果不对。
$fp = fopen($_FILES['csv']['tmp_name'],'r') or die("Can't Open");
while($csv_line = fgetcsv($fp,1024))
{
$cnt = count($csv_line);
for($i=1;$i<=$cnt;$i++){
$data[$i]['ID'] = $csv_line[1];
$data[$i]['NAME'] = $csv_line[2];
$data[$i]['DAY1'] = $csv_line[3];
$data[$i]['DAY2'] = $csv_line[4];
$data[$i]['DAY3'] = $csv_line[5];
$data[$i]['DAY4'] = $csv_line[6];
}
return $data;
}
fclose($fp) or die("Error");
有可能吗?因为我的公司不想更改旧的 excel 格式,因为这会影响到所有分支机构。
【问题讨论】:
-
如果您在数据库架构上具有相同的表结构,则我的以下答案适合。
标签: php sql-server codeigniter