데이터 (전화 번호 목록)가 포함 된 Excel 파일이 있는데 그 데이터를 PHP 코드를 사용하여 내 데이터베이스 테이블 (예 : phonenumber_list)로 가져 오기를 원합니다. MySQl을 Excel로 변환하는 방법을 알고 있지만 역순으로 변환 할 수 있습니까? 도와주세요! 먼저 CSV로 Excel 파일을 변환 할 수 있습니다 경우PHP를 사용하여 MySQL 데이터베이스에 Excel 또는 CSV를 업로드하는 방법은 무엇입니까?
0
A
답변
3
CSV
, 당신은 CSV를 가져올 mysqlimport
를 사용할 수 있습니다. 아마 MySQL로 데이터를 가져 오는 가장 빠른 방법 일 것입니다.
LOAD DATA INFILE
을 사용하여 PHP에서이를 수행 할 수 있습니다. 이 data.csv
가져올 수있는 샘플 SQL 문입니다 : 당신이 CSV를 사용하고 원시 엑셀 파일로 작업 할 필요가없는 경우
LOAD DATA INFILE 'data.csv' INTO TABLE phonenumber_list
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
엑셀
을, 당신은 엑셀 파일을 읽을 수있는 PHP 라이브러리가 필요합니다 .
몇 사용할 수 있습니다,하지만 난 그들이 얼마나 신뢰할 수있는 또는 얼마나 잘 유지 모른다 :
Pear: Spreadsheet_Excel_Writer
당신은 또한보고 할 수 있습니다 엑셀 API를 사용하는 대안적인 접근법에서,하지만 그렇게하기 위해서는 엑셀이 설치되어 있어야합니다. 여기에 대한 약간의 정보가있다 :
http://www.sydphp.org/presentations/010606-excel.html
이 방법을 사용하면 읽기 및 Excel 파일을 구문 분석하고, MySQL로 행 단위를 보냅니다 코드를 작성해야합니다. 이것은 대량 CSV 가져 오기보다 훨씬 느리게 작동 할 수 있습니다.
3
먼저 Excel 파일을 CSV 형식 (쉼표로 구분) 파일로 변환해야합니다.
는 다음의 MySQL에 삽입하기 위해 다음과 같은 PHP 스크립트를 사용 :
<?php
error_reporting(E_ALL & ~E_NOTICE);
$connect = mysql_connect("localhost","root","");
@mysql_select_db("dbname");
[email protected]$_FILES[csv][name];
$ext=end(explode('.',$inputFile));
if($ext=='csv')
{
[email protected]$_FILES[csv][tmp_name];
$f = @fopen($tmpFile, 'r');
$contents = @fread($f, 10000);
fclose($f);
$fileLines = explode("\r\n", $contents); // explode to make sure we are only using the first line.
$fieldList_header = explode(',', $fileLines[0]);
$csv_header=array("ID","Name","Address","Email-Id","Contact-No"); // Excel file heading
$i=0;
//index keys for each column
$ID_key=null;
$Name_key=null;
$Address_key=null;
$Email_ID_key=null;
$Contact_No_key=null;
foreach($csv_header as $csv)
{
//searching index for each value
if(in_array($csv,$fieldList_header))
{
$key=array_search($csv,$fieldList_header);
if($i==0)
$ID_key=$key;
if($i==1)
$Name_key=$key;
if($i==2)
$address_key=$key;
if($i==3)
$Email_ID_key=$key;
if($i==4)
$Contact_No_key=$key;
}
else
{
echo "Failed to search : ".$csv." blank space will be inserted.<br>";
}
$i++;
}
echo "<table border=1px>";
echo "<tr>";
echo "<td>";
echo "Id";
echo "</td>";
echo "<td>";
echo "Name";
echo "</td>";
echo "<td>";
echo "Address";
echo "</td>";
echo "<td>";
echo "Email ID";
echo "</td>";
echo "<td>";
echo "Contact No";
echo "</td>";
echo "</tr>";
$j=1;
for($i=2;$i<count($fileLines)-1;$i++)
{
$fieldList_other = explode(',', $fileLines[$i]);
echo "<tr>";
echo "<td>";
echo $fieldList_other[$ID_key];
echo "</td>";
echo "<td>";
echo $fieldList_other[$Name_key];
echo "</td>";
echo "<td>";
echo $fieldList_other[$Address_key];
echo "</td>";
echo "<td>";
echo $fieldList_other[$Email_ID_key];
echo "</td>";
echo "<td>";
echo $fieldList_other[$Contact_No_key];
echo "</td>";
echo "</tr>";
$query="insert into Contact (EmployeeName,DateOfJoining,SalaryPerDay,Address,Designation,BalanceLeaves,ContactNumber) values('$fieldList_other[$ID_key]','$fieldList_other[$Name_key]','$fieldList_other[$Address_key]','$fieldList_other[$Email_ID_key]','$fieldList_other[$Contact_No_key]')";
$result=mysql_query($query);
if(!$result)
echo "Record $j failed.<br>";
else
echo "Record $j inserted in database.";
$j++;
}
echo "</table>";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Import a CSV File with PHP & MySQL</title>
<script>
<!--
function noempty()
{
var y=document.forms["form1"]["csv"].value;
if (y==null || y=="")
{
alert("Please enter the required field");
return false;
}
}
-->
</script>
</head>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">
<center>
</br></br>
Choose your file: <br />
<input name="csv" type="file" id="csv" />
<input type="submit" name="Submit" value="Submit" onclick="return noempty()"/>
</center>
</form>
</body>
</html>
이 스크립트는 당신에게 도움이 될 것입니다. Excel 파일 열의 순서가 어떻든간에 각각의 데이터는 MySQL에만 입력되기 때문입니다.
관련 문제
- 1. 자바를 사용하여 데이터베이스에 Excel을 업로드하는 방법은 무엇입니까?
- 2. PHP를 사용하여 MySQL 데이터베이스에 액세스
- 3. 1,600,000 행의 데이터를 mysql 데이터베이스에 업로드하는 가장 좋은 방법은 무엇입니까?
- 4. PHP를 사용하여 Excel 테이블의 데이터를 Excel 테이블에 삽입하는 방법은 무엇입니까?
- 5. PHP를 사용하여 MySQL 데이터베이스에 여러 레코드를 추가하는 방법은 무엇입니까?
- 6. Pleae 가이드 나를 PHP를 통해 mySql 데이터베이스에 업로드하는 방법
- 7. Excel 스프레드 시트 데이터와 CSV를 구문 분석하는 장점은 무엇입니까?
- 8. PHP를 사용하여 sqlite 데이터베이스에 연결하는 방법은 무엇입니까?
- 9. Help - PHP를 사용하여 MySQL 데이터베이스에 삽입
- 10. jQuery 및 PHP를 사용하여 MySQL 데이터베이스에 삽입
- 11. ADO.NET을 사용하여 데이터베이스에 데이터를 업로드하는 방법
- 12. 우리는 어떻게 PHP를 사용하여 MySQL 데이터베이스에 파일을 업로드합니까
- 13. PHP를 사용하여 MySQL 데이터베이스에 삽입 할 수없는 이유는 무엇입니까?
- 14. php를 사용하여 상위 디렉토리에 파일을 업로드하는 방법
- 15. CSV를 데이터베이스에 가져 오기
- 16. 데이터베이스에 파일을 업로드하는 모범 사례
- 17. phonegap을 사용하여 MP3 파일을 서버 (xxampp)에 업로드하는 방법은 무엇입니까?
- 18. PHP를 사용하여 MySQL 데이터베이스에서 이미지를 읽는 방법?
- 19. PHP를 사용하여 업로드하는 파일의 확장자를 찾으십시오.
- 20. PHP를 사용하여 MySQL 데이터베이스에서 데이터를 확인하는 방법은 무엇입니까?
- 21. F #을 MySQL 데이터베이스에 연결하는 방법은 무엇입니까?
- 22. 엑셀 파일을 단일 MySQL 테이블에 업로드하는 방법은 무엇입니까?
- 23. PHP를 사용하여 MS Access 데이터베이스에 액세스하는 가장 좋은 방법은 무엇입니까?
- 24. MySQL과 PHP를 사용하여 데이터베이스에 값이 나열되어 있는지 확인하는 방법은 무엇입니까?
- 25. PHP를 사용하여 MySQL 데이터베이스에 이진 체크 박스 값 추가하기
- 26. PHP를 사용하여 데이터베이스에 sql 파일로드
- 27. PHP를 사용하여 Oracle 데이터베이스에 연결
- 28. PHP를 사용하여 HTML 폼에서 값을 가져 와서 MySQL 데이터베이스에 저장하십시오.
- 29. IP 주소 (v4 또는 v6)를 PHP를 사용하여 데이터베이스에 int로 저장하는 방법은 무엇입니까?
- 30. PHP를 사용하여 mysql에 Excel 데이터 가져 오기
mysqlimport와 LOAD DATA INFILE은 CSV 만 사용하거나 EXCEl 파일에서도 작동합니다 ... –
죄송합니다. 분명히하지 않았습니다. 'LOAD DATA INFILE'은 CSV 파일에서만 작동합니다. 나는 나의 대답을 업데이트했다. – Mike
안녕하세요! 감사합니다 ... @ 마이크 ... –