excelTool.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. if ($_FILES['excel']['error'] === UPLOAD_ERR_OK) {
  3. if (file_exists('./upload/' . $_FILES['excel']['name'])) {
  4. echo '檔案已存在。<br/>';
  5. } else {
  6. $file = $_FILES['excel']['tmp_name'];
  7. echo $file;
  8. echo $_FILES['excel']['name'];
  9. $dest = './upload/' . $_FILES['excel']['name'];
  10. # 將檔案移至指定位置
  11. move_uploaded_file($file, $dest);
  12. $project_id = $_POST["project_id"];
  13. include("sql.php");
  14. $account = "maabim";
  15. try {
  16. $pdo = new PDO('sqlsrv:Server=' . $hostname . ';Database=' . $db_name, $username, $password);
  17. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  18. } catch (PDOException $e) {
  19. echo $e;
  20. echo json_encode('Error connecting to the server.');
  21. die();
  22. }
  23. /** PHPExcel */
  24. require_once "../../lib/excel/PHPExcel.php";
  25. /** PHPExcel_IOFactory */
  26. require_once "../../lib/excel/PHPExcel/IOFactory.php";
  27. $reader = PHPExcel_IOFactory::createReader('Excel2007');
  28. $PHPExcel = $reader->load($dest);
  29. for ($i = 1; $i <= 7; $i++) {
  30. if ($i != 3) {
  31. $sheet = $PHPExcel->getSheet($i); // 讀取第一個工作表(編號從 0 開始)
  32. $highestRow = $sheet->getHighestRow(); // 取得總列數
  33. for ($row = 2; $row <= $highestRow; $row++) {
  34. $data = [];
  35. for ($column = 0; $column <= 2; $column++) {
  36. $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
  37. if ($column == 2 && $val === NULL || $val === '') {
  38. break 2;
  39. }
  40. $data[$column] = $val;
  41. echo $data[$column] . ' ';
  42. }
  43. $sth = $pdo->prepare("INSERT INTO [21000X].[dbo].[File_Table]
  44. ([project_id]
  45. ,[SN]
  46. ,[type_id]
  47. ,[original_name]
  48. ,[filename])
  49. VALUES
  50. ('".$project_id."',
  51. '" . $data[0] . "',
  52. '" . $i . "',
  53. '" . $data[1] . "',
  54. '" . $data[2] . "')");
  55. $sth->execute();
  56. echo "<br />";
  57. }
  58. } else if ($i == 3) {
  59. $sheet = $PHPExcel->getSheet($i); // 讀取第一個工作表(編號從 0 開始)
  60. $highestRow = $sheet->getHighestRow(); // 取得總列數
  61. for ($row = 2; $row <= $highestRow; $row++) {
  62. $data = [];
  63. for ($column = 0; $column <= 5; $column++) {
  64. $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
  65. if ($column == 2 && $val === NULL || $val === '') {
  66. break 2;
  67. }
  68. $data[$column] = $val;
  69. echo $data[$column] . ' ';
  70. }
  71. $sth = $pdo->prepare("INSERT INTO [21000X].[dbo].[Blueprint]
  72. ([project_id]
  73. ,[SN]
  74. ,[blueprint_id]
  75. ,[type_id]
  76. ,[original_name]
  77. ,[keyword]
  78. ,[notes]
  79. ,[filename]
  80. )
  81. VALUES
  82. ('".$project_id."',
  83. '" . $data[0] . "',
  84. '" . $data[1] . "',
  85. '" . $i . "',
  86. '" . $data[2] . "',
  87. '" . $data[3] . "',
  88. '" . $data[4] . "',
  89. '" . $data[5] . "')");
  90. $sth->execute();
  91. echo "<br />";
  92. }
  93. }
  94. }
  95. }
  96. }