Hàm nhập trong php

Trong tut này mình sẽ chia sẽ như thế nào để nhập tệp excel vào cơ sở dữ liệu bằng cách sử dụng php excel cho thư viện php và vue js cho phần javascript

Hàm nhập trong php

Thư viện php excel

Thư viện này anh chị có thể tải từ https. //github. com/nguyentantung/library-php-excel

Code sample dùng cho công việc import file excel

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

function stocksCodeExcelToData($path_file){

// bao gồm PHPExcel

bao gồm CHECKSTOCKSCODE_LIBS_DIR. 'phpexcel/Classes/PHPExcel. php';

// đường dẫn tập tin

$file = $path_file;

//xác nhận tập tin

$objFile = \PHPExcel_IOFactory:. xác định($tệp);

$objData = \PHPExcel_IOFactory:. createReader($objFile);

//chỉ đọc

$objData - >setReadDataOnly(true);

// Nạp dữ liệu cho đối tượng

$objPHPExcel = $objData->load($file);

//Lấy số trang sử dụng getSheetCount();

// Lấy tên trang sử dụng getSheetNames();

//Chọn trang cần đọc

$trang tính = $objPHPExcel->setActiveSheetIndex(0);

//Lấy hàng cuối cùng

$Tổng số = $trang tính->getHighestRow();

//Lấy tên cột cuối cùng

$Cột cuối = $trang tính->getHighestColumn();

$TotalCol = \PHPExcel_Cell:. columnIndexFromString($LastColumn);

$dữ liệu = mảng();

cho ($i = 2; $i <= $Totalrow; $i++) {

for ($j = 0; $j < $TotalCol; $j++) {

$dữ liệu[$i - 2][$j] = $sheet->getCellByColumnAndRow($j, $i)->getValue();;

}

}

if($dữ liệu):

foreach($dữ liệu as $key=>$data_item):

$này - >stocksCodeInsert($data_item[0], $note='');

endforeach;

endif;

// trả lại dữ liệu $;

}

Chức năng này anh chị truyền vào đường dẫn đến file anh thu được khi submit, anh chị chỉ cần lưu ý vị trí $data_item[0] là cột 1, tương tự như dữ liệu vận tải ở cột 2 sẽ là $data_item[1]

Code php xử lý ajax

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

function importStocksCodeFromExcel(){

$tệp = $_FILES['fileExcel'];

$kết quả = mảng();

//cập nhật dử liệu

$upload_dir = wp_upload_dir();

$kết quả['wp_upload_dir'] = $upload_dir;

nếu(. trống($tệp)){

$target_dir = $upload_dir['basedir']."/";

$tệp target_file = $target_dir . tên cơ sở($tệp["name"]);

$uploadOk = 1;

$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

$thông điệp = '';

// Kiểm tra xem file đã tồn tại chưa

if (file_exists($target_file)) {

  $tin nhắn = "Tệp đã có trong hệ thống . ";

  $uploadOk = 0;

}

// Kiểm tra dung lượng file

if ($_FILES["fileToUpload"]["size"] > 50000) {

  $tin nhắn = "Only for file 10 mg;

  $uploadOk = 0;

}

// Cho phép một số định dạng tệp nhất định

$allow_file_formats = mảng("pdf","xlsx","xls","doc","docx");

nếu(. in_array($imageFileType,$allow_file_formats)) {

  $thông báo = "Chí cho phép tệp pdf;

  $uploadOk = 0;

}

// Kiểm tra xem $uploadOk có bị lỗi đặt thành 0 không

if ($uploadOk == 0) {

$kết quả['thông báo']=$message;

} khác {

  if (move_uploaded_file($file["tmp_name"], $target_file)) {

  $kết quả['stocksCodeExcelToData'] = $this->stocksCodeExcelToData($target_file);

  $kết quả['target_file']=$target_file;

  @hủy liên kết($target_file);

$kết quả['thông báo']="Đã import thành công!";

  } else {

$kết quả['thông báo']="Có lỗi trong quá trình upload";

  }

}

}

wp_send_json_success($kết quả);

}

chức năng cổ phiếuMãChèn

đây là hàm chèn dữ liệu sau khi lấy từ file excel

1

2

3

4

5

6

7

8

9

10

11

12

hàm stocksCodeInsert($, $note=''){

toàn cầu $wpdb;

$bảng = $wpdb->prefix.'stocks_code';

$dữ liệu = mảng(

'mã' = > $,

'ghi chú' = > $ghi chú

);

$định dạng = mảng('%s', '%s');

$wpdb - >chèn($table,$data,$format);

$my_id = $wpdb->insert_id;

return $my_id;

}

 

Các bài viết khác có thể hữu ích với bạn

  • Thực hiện ajax trong vòng lặp trong vue js
  • Làm tùy chọn cài đặt wordpress bằng vue js
  • Cách tạo form multi field row bằng vue js
  • Sử dụng plugin chọn ngày giờ jquery trong vuejs
  • Tạo sự kiện click bên ngoài một phần tử trong vue js
  • Code sử dụng vue js, quasar, axios, sweetalert2 trong nhiệm vụ quản lý danh sách
  • Cách sử dụng select2 và giải quyết sự kiện thay đổi không hoạt động trong vue js
  • Vue js trong một bài viết
  • Sử dụng bộ lọc trong mảng để làm chức năng tìm kiếm cho vue js
  • Phát hiện sự kiện click for a element in vue js
  • Tìm kiếm trực tiếp trong mảng với vue js

Code xử lý vue js

Trong ví dụ này, mình sẽ tạo một phương thức như hình bên dưới

Hàm nhập trong php

Chế độ mã này mình sử dụng thư viện [email được bảo vệ], sau đây là mã

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<q - hộp thoại v-model="modalImportFromExcel">

<q - thẻ kiểu="width: 500px; max-width: 80vw;">

<q - thẻ - section class="row items-center q-pb-none">

<div class = "text-h6">Import t file excel</div>

<q - dấu cách></q-space>

<q - btn icon="close" flat round dense v-close-popup ></q-btn>

< / q - thẻ-section>

<q - thẻ - section >

<mẫu>

<div class = "q-pa->

<div class = "q-gutter- . 800px" style="max-width: 800px">

<div class = "row q-col>

<div class = "col-12">

<q - tệp màu="purple-12" v-model="fileExcel" label="Chọn file excel">

        <mẫu v - slot:vào trước>

          <q - icon name="attach_file" />

        < / mẫu>

      < / q - file>

< / div>

< / div>

<div class = "row q-col>

<div class = "col-4">

<nút lớp = "custom-btn"  @click="triggerImportFromExcel" v-html="triggerImportFromExcelText" ></button>

< / div>

<div class = "col-8" . ><a :href = "excelUrlTemplate" tải xuống><i class="fa fa-cloud-download" aria-hidden="true"></i> Ti mu excel để import nếu chưa có</a></div>

< / div>

< / div>

< / div>

< / mẫu>

< / q - thẻ-section>

< / q - thẻ>

< / q - hộp thoại>

trọng

1

2

3

4

dữ liệu. () = > ({

triggerImportFromExcelText. ' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập' Nhập',

modalImportFromExcel. sai

})

 

Khi muốn mở modal anh chị chỉ cần viết một chức năng đơn giản

1

2

3

4

5

phương pháp. {

openModalImportFromExcel(){

này. modalImportFromExcel = true

}

}

Giờ chúng ta sẽ đi viết mã cho nút gửi, ah ngoài thư viện [email được bảo vệ] mình còn dùng axios cho phần bất đồng bộ