Drupal读取Excel并导入数据库实例_php实例
PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
一、Drupal 通过Library 调用 PHPExcel
将PHPExcel 下载后,上传到Drupal目录:sites/all/libraries/PHPExcel
如果你的项目中安装了libraries模块,可以通过libraries_load($name);来调用。
如果没有安装libraries模块,可以简单的使用下列代码来调用:
注意为了确保Excel全部导入,程序可以会话很长的时间来进行。所以在代码开头部分加入:
来确保运行时间不受限制。
二、Drupal 读取Excel并导入到数据库
Drupal 实现上传Excel文件后,读取Excel 内容,写入到数据库,打印导入结果消息。
归纳起来有这样几点:
1.Drupal 读取Excel 多行多列内容,列数从1到n,行数也是1到n。
2.Drupal 根据数据库结构 n 个字段分别用于存放Excel 1到n列,如果Excel 的列数很多,可以把n列值存放在1个字段中。
3.这里我解决的是Excel n列值存放到MySQL n个字段中(n不是很大)
这就是在Drupal最后提交上传文件后的函数:
set_time_limit(0);
$timestamp = time();
// 确保Excel文件上传了
if ($file = file_save_upload('file')) {
$row = 0; //解析行数
$paseRows = 0; //跳过行数 没有值的行
$insertRows = 0; //插入行数
$table = array(
'dbfield1′,
'dbfield2′,
'dbfield3,
'dbfield4′,
'dbfield5′,
…
'dbfieldn',
);
require("sites/all/libraries/PHPExcel/PHPExcel/IOFactory.php");
if(($handle = fopen ( $file->filepath, "r" )) !== FALSE) {
$PHPExcel = new PHPExcel ();
$PHPReader = new PHPExcel_Reader_Excel2007 ();
if (! $PHPReader->canRead ( $file->filepath )) {
$PHPReader = new PHPExcel_Reader_Excel5 ();
if (! $PHPReader->canRead ( $file->filepath )) {
echo 'no Excel';
return;
}
}
$PHPExcel = $PHPReader->load ( $file->filepath );
$currentSheet = $PHPExcel->getSheet ( 0 );
/**取得一共有多少列*/
$allColumn = $currentSheet->getHighestColumn();
//取得共有多少列,若不使用此静态方法,获得的$col是文件列的最大的英文大写字母
$col = PHPExcel_Cell::columnIndexFromString($currentSheet->getHighestColumn());
/**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
//循环读取每个单元格的内容。注意行从1开始,列从A开始
for($rowIndex = 2; $rowIndex $token_db = $row_db = $field = array();
$i = 0;
$query = ”;
for($colIndex = 0; $colIndex //$addr = $colIndex.$rowIndex;
//$cell = $currentSheet->getCell($addr)->getValue();
$cell = $currentSheet->getCellByColumnAndRow($colIndex, $rowIndex)->getValue();
$cell = trim($cell);
if($cell instanceof PHPExcel_RichText) {
//富文本转换字符串
$cell = $cell->__toString();
}
if ($colIndex == 'A' && !intval($cell)) {
$paseRows++;
break;
}
$field[] = $table[$i];
$token_db[] = "'%s'";
$row_db[] = $cell;
$query .= $table[$i]." = '%s', ";
$i++;
}
$row++;
if ($row_db) {
db_query('INSERT INTO {db_import} ('. implode(', ', $field) .', created) VALUES('. implode(', ', $token_db) .', %d)', array_merge($row_db, array($timestamp)));
$insertRows++;
}
}
fclose ( $handle );
}
drupal_set_message(t('文件 @file 导入成功.', array('@file' => $file->filename)));
drupal_set_message("解析".$row."条数据完毕,新增共".$insertRows."条数据,没有试题类型ID的".$paseRows."条数据。");
}
else {
drupal_set_message(t('File to import not found.'), 'error');
$form_state['redirect'] = 'admin/content/db/import';
return;
}
}
?>
上面代码部分注意一下几点:
$allColumn = $currentSheet->getHighestColumn(); //获取的列为英文大写字母的数组索引。
$col = PHPExcel_Cell::columnIndexFromString($currentSheet->getHighestColumn()); //将英文大写字母索引格式化为数字,索引值从0开始计算。
本代码支持读取Excel 2007 及之前的格式。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Jika semasa membuka fail yang perlu dicetak, kami akan mendapati bahawa garis bingkai jadual telah hilang atas sebab tertentu dalam pratonton cetak Apabila menghadapi situasi sedemikian, kami mesti menanganinya dalam masa Jika ini juga muncul dalam cetakan anda fail Jika anda mempunyai soalan seperti ini, kemudian sertai editor untuk mempelajari kursus berikut: Apakah yang perlu saya lakukan jika garis bingkai hilang semasa mencetak jadual dalam Excel? 1. Buka fail yang perlu dicetak, seperti yang ditunjukkan dalam rajah di bawah. 2. Pilih semua kawasan kandungan yang diperlukan, seperti yang ditunjukkan dalam rajah di bawah. 3. Klik kanan tetikus dan pilih pilihan "Format Sel", seperti yang ditunjukkan dalam rajah di bawah. 4. Klik pilihan "Sempadan" di bahagian atas tetingkap, seperti yang ditunjukkan dalam rajah di bawah. 5. Pilih corak garisan pepejal nipis dalam gaya garisan di sebelah kiri, seperti yang ditunjukkan dalam rajah di bawah. 6. Pilih "Sempadan Luar"

Excel sering digunakan untuk memproses data dalam kerja pejabat harian, dan selalunya perlu menggunakan fungsi "penapis". Apabila kami memilih untuk melakukan "penapisan" dalam Excel, kami hanya boleh menapis sehingga dua syarat untuk lajur yang sama Jadi, adakah anda tahu cara menapis lebih daripada 3 kata kunci pada masa yang sama dalam Excel? Seterusnya, izinkan saya menunjukkannya kepada anda. Kaedah pertama ialah menambah keadaan secara beransur-ansur pada penapis. Jika anda ingin menapis tiga butiran kelayakan pada masa yang sama, anda perlu menapis satu daripadanya langkah demi langkah terlebih dahulu. Pada mulanya, anda boleh menapis terlebih dahulu pekerja dengan nama keluarga "Wang" berdasarkan syarat. Kemudian klik [OK], dan kemudian tandakan [Tambah pilihan semasa untuk penapis] dalam hasil penapis. Langkah-langkahnya adalah seperti berikut. Begitu juga, lakukan penapisan secara berasingan sekali lagi

Dalam kerja dan kajian harian kami, kami menyalin fail Excel daripada orang lain, membukanya untuk menambah kandungan atau mengeditnya semula, dan kemudian menyimpannya Kadangkala kotak dialog semak keserasian akan muncul, yang sangat menyusahkan perisian, bolehkah ia ditukar kepada mod biasa? Jadi di bawah, editor akan membawakan anda langkah terperinci untuk menyelesaikan masalah ini, mari kita belajar bersama. Akhir sekali, pastikan anda ingat untuk menyimpannya. 1. Buka lembaran kerja dan paparkan mod keserasian tambahan dalam nama lembaran kerja, seperti yang ditunjukkan dalam rajah. 2. Dalam lembaran kerja ini, selepas mengubah suai kandungan dan menyimpannya, kotak dialog penyemak keserasian sentiasa muncul. Sangat menyusahkan untuk melihat halaman ini, seperti yang ditunjukkan dalam rajah. 3. Klik butang Pejabat, klik Simpan Sebagai, dan kemudian

eKami sering menggunakan Excel untuk membuat beberapa jadual data dan seumpamanya Kadang-kadang apabila memasukkan nilai parameter, kita perlu mencantumkan nombor tertentu Sebagai contoh, formula matematik sering digunakan lihat langkah terperinci: 1. Kaedah superskrip: 1. Pertama, masukkan a3 (3 ialah superskrip) dalam Excel. 2. Pilih nombor "3", klik kanan dan pilih "Format Sel". 3. Klik "Superskrip" dan kemudian "OK". 4. Tengok, kesannya macam ni. 2. Kaedah subskrip: 1. Sama seperti kaedah tetapan superskrip, masukkan "ln310" (3 ialah subskrip) dalam sel, pilih nombor "3", klik kanan dan pilih "Format Sel". 2. Semak "Subskrip" dan klik "OK"

Semasa memproses data, kadangkala kami menemui data yang mengandungi pelbagai simbol seperti gandaan, suhu, dll. Adakah anda tahu cara menetapkan superskrip dalam Excel? Apabila kami menggunakan Excel untuk memproses data, jika kami tidak menetapkan superskrip, ia akan menyusahkan untuk memasukkan banyak data kami. Hari ini, editor akan membawakan anda kaedah tetapan khusus superskrip excel. 1. Mula-mula, mari kita buka dokumen Microsoft Office Excel pada desktop dan pilih teks yang perlu diubah suai menjadi superskrip, seperti yang ditunjukkan dalam rajah. 2. Kemudian, klik kanan dan pilih pilihan "Format Cells" dalam menu yang muncul selepas mengklik, seperti yang ditunjukkan dalam rajah. 3. Seterusnya, dalam kotak dialog "Format Sel" yang muncul secara automatik

Kebanyakan pengguna menggunakan Excel untuk memproses data jadual Malah, Excel juga mempunyai program VBA fungsi fungsi adalah serupa. Biar saya perkenalkan kepada anda penggunaan fungsi iif. Terdapat fungsi iif dalam pernyataan SQL dan kod VBA dalam Excel. Fungsi iif adalah serupa dengan fungsi IF dalam lembaran kerja excel Ia melakukan pertimbangan nilai benar dan salah dan mengembalikan hasil yang berbeza berdasarkan nilai benar dan salah yang dikira secara logik. JIKA penggunaan fungsi adalah (syarat, ya, tidak). Penyataan IF dan fungsi IIF dalam VBA Penyataan IF dahulu ialah penyataan kawalan yang boleh melaksanakan penyataan yang berbeza mengikut syarat yang terakhir

Dalam kajian perisian, kami terbiasa menggunakan excel, bukan sahaja kerana ia mudah, tetapi juga kerana ia dapat memenuhi pelbagai format yang diperlukan dalam kerja sebenar, dan excel sangat fleksibel untuk digunakan, dan terdapat mod yang mudah untuk membaca Hari ini saya bawa Untuk semua orang: di mana untuk menetapkan mod bacaan excel. 1. Hidupkan komputer, kemudian buka aplikasi Excel dan cari data sasaran. 2. Terdapat dua cara untuk menetapkan mod bacaan dalam Excel. Yang pertama: Dalam Excel, terdapat sejumlah besar kaedah pemprosesan yang mudah diedarkan dalam susun atur Excel. Di sudut kanan bawah Excel, terdapat pintasan untuk menetapkan mod bacaan Cari corak tanda pangkah dan kliknya untuk memasuki mod bacaan Terdapat tanda tiga dimensi kecil di sebelah kanan tanda pangkah .

1. Buka PPT dan putar halaman ke halaman di mana anda perlu memasukkan ikon excel. Klik tab Sisipkan. 2. Klik [Objek]. 3. Kotak dialog berikut akan muncul. 4. Klik [Buat daripada fail] dan klik [Semak imbas]. 5. Pilih jadual excel yang hendak disisipkan. 6. Klik OK dan halaman berikut akan muncul. 7. Tandakan [Show as icon]. 8. Klik OK.
