ホームページ  >  記事  >  php教程  >  PHPExcelはExcelを読み込みます

PHPExcelはExcelを読み込みます

WBOY
WBOYオリジナル
2016-06-21 08:47:441139ブラウズ

主な機能は、アップロードされた Excel ファイルを読み取り、データベースに挿入または更新することです。

iconv("gbk","utf8",$_FILES["file"]["tmp_name"]), mysql_query("SET NAMES 'utf8'")、エンコード変換により、データベース内で中国語が文字化けして表示されるのを防ぎます。

主なソース コードは次のとおりです:

コードをコピー

1 ヘッダー("Content-type:text/html;charset=utf-8");

2 require_once('PHPExcel/Classes/PHPExcel.php');

3 require_once('PHPExcel/Classes/PHPExcel/IOFactory.php');

4

5 iconv("gbk","utf8",$_FILES["file"]["tmp_name"]);//エンコード変換

6

7 $fileType=PHPExcel_IOFactory::identify($_FILES["file"]["tmp_name"]);//ファイルの種類を決定します

8 $objReader=PHPExcel_IOFactory::createReader($fileType);// オブジェクトを作成します

9 $objPHPExcel=$objReader->load($_FILES['file']['tmp_name']);//データをインポート

10

11 $currentSheet = $objPHPExcel->getSheet(0); //最初のワークブック

12 $allRow = $currentSheet->getHighestRow(); //行数

13 $letters_arr = array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6 =>'F',7=>'G',8=>'H',9=>'I',10=>'J',11=>'K',12=> ;'L',13=>'M',14=>'N',15=>'O',16=>'P',17=>'Q',18=>' R',19=>'S',20=>'T',21=>'U',22=>'V',23=>'W',24=>'X' ,25=>'Y',26=>'Z');

14

15

16 $con=mysql_connect('localhost','root','root')

17 or die('データベースリンクに失敗しました!
'.mysql_error());

18

19 $db=mysql_select_db('db_product',$con);

20 mysql_query("SET NAMES 'utf8'");

21 for($currentRow = 3;$currentRow

22 $rowValues='';

23 $id=(string)($currentSheet->getCell('C'.$currentRow)->getValue());

24

25 $select_id=mysql_query("SELECT * FROM t_shop WHERE productNum='$id'");

26 $result=mysql_fetch_array($select_id);

27

28

29 if(!$result){//存在するかどうかを判断します

30 foreach ($letters_arr as $key => $value) {

31 $xh=$currentSheet->getCell($value.$currentRow)->getValue();

32 if($key>14)break;

33 $rowValues=$rowValues.($key>1?',':'').'''.$xh.''';

34

35

36 }

37

38 $sql="INSERT INTO t_shop (shopName,brand,productNum,spec,barCode,category,productName,orderNumber,deliveryNumber,returnNumber,returnBackNumber,salesPrice,costPrice,profit) VALUES (".$rowValues.")" ;

39 mysql_query($sql);

40 }

他41個{

42

43 $reValues=re_row($result,$letters_arr,$currentSheet,$currentRow);

44 $sql="UPDATE t_shop SET shopName='$reValues[0]',brand='$reValues[1]',spec='$reValues[2]',barCode='$reValues[3]' ,category='$reValues[4]',productName='$reValues[5]',orderNumber=$reValues[6],deliveryNumber=$reValues[7],returnNumber=$reValues[8],returnBackNumber=$reValues[ 9]、salesPrice=$reValues[10]、costPrice=$reValues[11]、利益=$reValues[12] WHERE productNum='$id'";

45 mysql_query($sql);

46 echo mysql_error().$id.'###';

47 print_r($reValues);

48 echo '
';

49 }

50

51

52

53 }

54

55 mysql_close($con);

56

57 関数 re_row($s,$a,$obj,$currentRow){

58 $b=$d='';

59 foreach ($a as $key => $value) {

60 $xh=$obj->getCell($value.$currentRow)->getValue();

61 if($key>14)break;

62 $d[]=$xh;

63

64

65 }

66

67 foreach ($d as $key => $value) {

68 if($key!=2 && $key

69 $b[]= (文字列)$value;

70 }

71 elseif($key>6){

72 $b[]=$s[$key]+$value;

73 }

74

75

76 }

77 $b を返します;

78 }



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。