Maison développement back-end tutoriel php ThinkPHP utilise PHPExcel pour importer et exporter des données Excel

ThinkPHP utilise PHPExcel pour importer et exporter des données Excel

Jun 07, 2018 pm 04:26 PM
excel phpexcel thinkphp 导入导出 数据

Cet article présente principalement ThinkPHP pour utiliser PHPExcel pour implémenter l'importation et l'exportation de données Excel. C'est une fonction très pratique. Les amis qui en ont besoin peuvent s'y référer

Les exemples décrits dans cet article sont utilisés dans le. cadre de développement de Thinkphp. Si vous utilisez La même méthode est utilisée dans d'autres frameworks. De nombreuses personnes peuvent ne pas être en mesure d'implémenter correctement l'importation et l'exportation d'Excel. Le problème est essentiellement dû à une erreur dans le chemin de référence de la classe principale. phpExcel. S'il y a un problème, chacun doit tester si Lu Jin est correctement référencé.

Les étapes spécifiques sont les suivantes :

(1) Importer Excel

Tout d'abord, téléchargez le fichier sur la page d'accueil html : tel que :

<form method="post" action="php文件" enctype="multipart/form-data">
 <h3>导入Excel表:</h3><input type="file" name="file_stu" />

 <input type="submit" value="导入" />
</form>
Copier après la connexion

Deuxièmement, traitez le fichier dans le fichier php correspondant

 if (! empty ( $_FILES [&#39;file_stu&#39;] [&#39;name&#39;] )) 
 {
 $tmp_file = $_FILES [&#39;file_stu&#39;] [&#39;tmp_name&#39;];
 $file_types = explode ( ".", $_FILES [&#39;file_stu&#39;] [&#39;name&#39;] );
 $file_type = $file_types [count ( $file_types ) - 1];
  /*判别是不是.xls文件,判别是不是excel文件*/
  if (strtolower ( $file_type ) != "xls")    
 {
   $this->error ( &#39;不是Excel文件,重新上传&#39; );
  }
 /*设置上传路径*/
  $savePath = SITE_PATH . &#39;/public/upfile/Excel/&#39;;
 /*以时间来命名上传的文件*/
  $str = date ( &#39;Ymdhis&#39; ); 
  $file_name = $str . "." . $file_type;
  /*是否上传成功*/
  if (! copy ( $tmp_file, $savePath . $file_name )) 
  {
   $this->error ( &#39;上传失败&#39; );
  }
 /*
  *对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中

  注意:这里调用执行了第三步类里面的read函数,把Excel转化为数组并返回给$res,再进行数据库写入
 */
 $res = Service ( &#39;ExcelToArray&#39; )->read ( $savePath . $file_name );
 /*
  重要代码 解决Thinkphp M、D方法不能调用的问题 
  如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码
 */
 //spl_autoload_register ( array (&#39;Think&#39;, &#39;autoload&#39; ) );
 /*对生成的数组进行数据库的写入*/
 foreach ( $res as $k => $v ) 
 {
  if ($k != 0) 
  {
   $data [&#39;uid&#39;] = $v [0];
   $data [&#39;password&#39;] = sha1 ( &#39;111111&#39; );
   $data [&#39;email&#39;] = $v [1];
   $data [&#39;uname&#39;] = $v [3];
   $data [&#39;institute&#39;] = $v [4];
   $result = M ( &#39;user&#39; )->add ( $data );
   if (! $result) 
   {
    $this->error ( &#39;导入数据库失败&#39; );
   }
  }
 }
}
Copier après la connexion

Troisième : classe ExcelToArrary, utilisée pour référencer phpExcel et traiter les données Excel
Notez ici :La classe ExcelToArrary est intégrée

class ExcelToArrary extends Service{
 public function __construct() {
  /*导入phpExcel核心类 注意 :你的路径跟我不一样就不能直接复制*/
  include_once(&#39;./Excel/PHPExcel.php&#39;);
 }
/**
* 读取excel $filename 路径文件名 $encode 返回数据的编码 默认为utf8
*以下基本都不要修改
*/ 
public function read($filename,$encode=&#39;utf-8&#39;){
   $objReader = PHPExcel_IOFactory::createReader(&#39;Excel5&#39;); 
   $objReader->setReadDataOnly(true); 
   $objPHPExcel = $objReader->load($filename); 
   $objWorksheet = $objPHPExcel->getActiveSheet(); 
    $highestRow = $objWorksheet->getHighestRow(); 
    $highestColumn = $objWorksheet->getHighestColumn(); 
   $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
    $excelData = array(); 
    for ($row = 1; $row <= $highestRow; $row++) { 
    for ($col = 0; $col < $highestColumnIndex; $col++) { 
     $excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
   } 
   } 
  return $excelData; 
 }  
 }
Copier après la connexion

dans addons /services/ExcelToArrary.class.php dans le répertoire racine Quatrièmement, ce qui précède contient tout le contenu importé et le package phpExcel est joint à la fin.

(2) Export Excel (beaucoup plus simple que l'importation)

Tout d'abord, recherchez les données pour générer Excel dans la base de données, telles que :

$data= M(&#39;User&#39;)->findAll(); //查出数据
$name=&#39;Excelfile&#39;; //生成的Excel文件文件名
$res=service(&#39;ExcelToArrary&#39;)->push($data,$name);
Copier après la connexion

Deuxièmement, la classe ExcelToArrary est utilisée pour référencer phpExcel et traiter les données

class ExcelToArrary extends Service{
public function __construct() {
  /*导入phpExcel核心类 注意 :你的路径跟我不一样就不能直接复制*/
  include_once(&#39;./Excel/PHPExcel.php&#39;);
}
/* 导出excel函数*/
public function push($data,$name=&#39;Excel&#39;){
 error_reporting(E_ALL);
 date_default_timezone_set(&#39;Europe/London&#39;);
 $objPHPExcel = new PHPExcel();

/*以下是一些设置 ,什么作者 标题啊之类的*/
 $objPHPExcel->getProperties()->setCreator("转弯的阳光")
   ->setLastModifiedBy("转弯的阳光")
   ->setTitle("数据EXCEL导出")
   ->setSubject("数据EXCEL导出")
   ->setDescription("备份数据")
   ->setKeywords("excel")
  ->setCategory("result file");
 /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
foreach($data as $k => $v){
  $num=$k+1;
  $objPHPExcel->setActiveSheetIndex(0)
 //Excel的第A列,uid是你查出数组的键值,下面以此类推
 ->setCellValue(&#39;A&#39;.$num, $v[&#39;uid&#39;]) 
 ->setCellValue(&#39;B&#39;.$num, $v[&#39;email&#39;])
 ->setCellValue(&#39;C&#39;.$num, $v[&#39;password&#39;])
 }
 $objPHPExcel->getActiveSheet()->setTitle(&#39;User&#39;);
 $objPHPExcel->setActiveSheetIndex(0);
  header(&#39;Content-Type: application/vnd.ms-excel&#39;);
  header(&#39;Content-Disposition: attachment;filename="&#39;.$name.&#39;.xls"&#39;);
  header(&#39;Cache-Control: max-age=0&#39;);
  $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, &#39;Excel5&#39;);
  $objWriter->save(&#39;php://output&#39;);
  exit;
}
Copier après la connexion

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez prêter attention au. Site Web chinois PHP !

Recommandations associées :

Implémentation de l'exportation phpexcel avec des images générées dans thinkphp3.2

Génération de phpqrcode dans Thinkphp3.2.3 Comment pour mettre en œuvre le code QR avec logo

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment filtrer plus de 3 mots-clés en même temps dans Excel Comment filtrer plus de 3 mots-clés en même temps dans Excel Mar 21, 2024 pm 03:16 PM

Excel est souvent utilisé pour traiter les données dans le travail de bureau quotidien et il est souvent nécessaire d'utiliser la fonction « filtre ». Lorsque nous choisissons d'effectuer un « filtrage » dans Excel, nous ne pouvons filtrer que jusqu'à deux conditions pour la même colonne. Alors, savez-vous comment filtrer plus de 3 mots-clés en même temps dans Excel ? Ensuite, laissez-moi vous le démontrer. La première méthode consiste à ajouter progressivement les conditions au filtre. Si vous souhaitez filtrer trois informations éligibles en même temps, vous devez d'abord en filtrer une étape par étape. Au début, vous pouvez d'abord filtrer les employés nommés « Wang » en fonction des conditions. Cliquez ensuite sur [OK], puis cochez [Ajouter la sélection actuelle au filtre] dans les résultats du filtre. Les étapes sont les suivantes. De même, effectuez à nouveau le filtrage séparément

Open source! Au-delà de ZoeDepth ! DepthFM : estimation rapide et précise de la profondeur monoculaire ! Open source! Au-delà de ZoeDepth ! DepthFM : estimation rapide et précise de la profondeur monoculaire ! Apr 03, 2024 pm 12:04 PM

0. À quoi sert cet article ? Nous proposons DepthFM : un modèle d'estimation de profondeur monoculaire génératif de pointe, polyvalent et rapide. En plus des tâches traditionnelles d'estimation de la profondeur, DepthFM démontre également des capacités de pointe dans les tâches en aval telles que l'inpainting en profondeur. DepthFM est efficace et peut synthétiser des cartes de profondeur en quelques étapes d'inférence. Lisons ce travail ensemble ~ 1. Titre des informations sur l'article : DepthFM : FastMonocularDepthEstimationwithFlowMatching Auteur : MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

Comment exécuter le projet thinkphp Comment exécuter le projet thinkphp Apr 09, 2024 pm 05:33 PM

Pour exécuter le projet ThinkPHP, vous devez : installer Composer ; utiliser Composer pour créer le projet ; entrer dans le répertoire du projet et exécuter php bin/console serve ; visiter http://localhost:8000 pour afficher la page d'accueil.

Comment insérer des icônes Excel dans les diapositives PPT Comment insérer des icônes Excel dans les diapositives PPT Mar 26, 2024 pm 05:40 PM

1. Ouvrez le PPT et tournez la page jusqu'à la page où vous devez insérer l'icône Excel. Cliquez sur l'onglet Insérer. 2. Cliquez sur [Objet]. 3. La boîte de dialogue suivante apparaîtra. 4. Cliquez sur [Créer à partir d'un fichier], puis cliquez sur [Parcourir]. 5. Sélectionnez le tableau Excel à insérer. 6. Cliquez sur OK et la page suivante apparaîtra. 7. Cochez [Afficher sous forme d'icône]. 8. Cliquez sur OK.

Google est ravi : les performances de JAX surpassent Pytorch et TensorFlow ! Cela pourrait devenir le choix le plus rapide pour la formation à l'inférence GPU Google est ravi : les performances de JAX surpassent Pytorch et TensorFlow ! Cela pourrait devenir le choix le plus rapide pour la formation à l'inférence GPU Apr 01, 2024 pm 07:46 PM

Les performances de JAX, promu par Google, ont dépassé celles de Pytorch et TensorFlow lors de récents tests de référence, se classant au premier rang sur 7 indicateurs. Et le test n’a pas été fait sur le TPU présentant les meilleures performances JAX. Bien que parmi les développeurs, Pytorch soit toujours plus populaire que Tensorflow. Mais à l’avenir, des modèles plus volumineux seront peut-être formés et exécutés sur la base de la plate-forme JAX. Modèles Récemment, l'équipe Keras a comparé trois backends (TensorFlow, JAX, PyTorch) avec l'implémentation native de PyTorch et Keras2 avec TensorFlow. Premièrement, ils sélectionnent un ensemble de

Vitesse Internet lente des données cellulaires sur iPhone : correctifs Vitesse Internet lente des données cellulaires sur iPhone : correctifs May 03, 2024 pm 09:01 PM

Vous êtes confronté à un décalage et à une connexion de données mobile lente sur iPhone ? En règle générale, la puissance de l'Internet cellulaire sur votre téléphone dépend de plusieurs facteurs tels que la région, le type de réseau cellulaire, le type d'itinérance, etc. Vous pouvez prendre certaines mesures pour obtenir une connexion Internet cellulaire plus rapide et plus fiable. Correctif 1 – Forcer le redémarrage de l'iPhone Parfois, le redémarrage forcé de votre appareil réinitialise simplement beaucoup de choses, y compris la connexion cellulaire. Étape 1 – Appuyez simplement une fois sur la touche d’augmentation du volume et relâchez-la. Ensuite, appuyez sur la touche de réduction du volume et relâchez-la à nouveau. Étape 2 – La partie suivante du processus consiste à maintenir le bouton sur le côté droit. Laissez l'iPhone finir de redémarrer. Activez les données cellulaires et vérifiez la vitesse du réseau. Vérifiez à nouveau Correctif 2 – Changer le mode de données Bien que la 5G offre de meilleures vitesses de réseau, elle fonctionne mieux lorsque le signal est plus faible

Comment lire des données Excel en HTML Comment lire des données Excel en HTML Mar 27, 2024 pm 05:11 PM

Comment lire des données Excel en HTML : 1. Utilisez la bibliothèque JavaScript pour lire les données Excel ; 2. Utilisez le langage de programmation côté serveur pour lire les données Excel.

Il existe plusieurs versions de thinkphp Il existe plusieurs versions de thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP dispose de plusieurs versions conçues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

See all articles