ExcelToMysql.php
php
require_once 'reader.php';
$data = new Spreadsheet_Excel_Reader();
$data-setOutputEncoding('gbk');
$data-read('classify.xls'); //"classify.xls"是指要导入到mysql中的excel文件
@ $db = mysql_connect("localhost", "root", "") or
die("Could not connect to database.");//连接数据库
mysql_query("set names 'gbk'");//输出中文
mysql_select_db('japlearn'); //选择数据库
error_reporting(E_ALL ^ E_NOTICE);
for ($i = 1; $i = $data-sheets[0]['numRows']; $i++) {
//以下注释的for循环打印excel表数据
$sql = "INSERT INTO classify VALUES('".
$data-sheets[0]['cells'][$i][1]."','".
echo $sql.'br /';
$res = mysql_query($sql);
}
把上面代码注释的地方替换成自己配置好的数据,如数据库配置等.运行本机测试地址实现导入.
①.、建立一个数组,取名为$ShuZu,举例数组的内容是学生的信息,包括姓名、性别和年龄.
$ShuZu = array
(
array("姓名","性别","年龄"),
);
$BiaoGe = "";
给¥BiaoGe赋初始值,
$BiaoGe = $BiaoGe."table ";
for ($i=0; $icount($ShuZu); $i++)
{
$BiaoGe = $BiaoGe. "tr";
$BiaoGe = $BiaoGe. "/tr";
for ($j=0;$jcount($ShuZu[$i]);$j++)
$BiaoGe = $BiaoGe. "td".$ShuZu[$i][$j]."/td";
$BiaoGe = $BiaoGe. "/table";
echo? $BiaoGe;
常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点.个人推荐用第三种方法,因为它可以跨平台使用.
① 以.csv格式读取
将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别.
优点:跨平台,效率比较高、可以读写.
缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化.一个文件只有一个SHEET.
PHP有自带的分析.csv函数:fgetcsv
array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针.
delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号.
fgetcsv() 出错时返回 FALSE,包括碰到文件结束时.
注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误.
当然也可以自己手动分析字符串.
还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针.
优点:支持多种格式,cvs, xls等.支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样.
缺点:值支持windows服务器
优点:跨平台.某些类支持写操作.支持.xls二进制文件
phpExcelReader是专门用来读取文件的.返回一个数组,包含表格的所有内容.
reader.php 中的下面这行要修改
将 require_once 'Spreadsheet/Excel/Reader/OLERead.php';
改为 require_once 'oleread.inc';
example.php 中
不然中文会有问题.
修改 $data-read('jxlrwtest.xls') 为自己的 excel 文件名,zip 档中附的 jxlrwtest.xls 应该是坏了.
php 把数据导出到excel表格有多种方法,比如使用 phpExcel 等,以下代码是直接通过 header 生成 excel 文件的代码示例:
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=xls_region.xls");
$cfg_dbhost?=?'localhost';
$cfg_dbname?=?'testdb';
$cfg_dbuser?=?'root';
$cfg_dbpwd?=?'root';
//?END?配置
//链接数据库
$link?=?mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
mysql_select_db($cfg_dbname);
//选择编码
mysql_query("set?names?".$cfg_db_language);
//users表
$sql?=?"desc?users";
$res?=?mysql_query($sql);
echo?"tabletr";
//导出表头(也就是表中拥有的字段)
while($row?=?mysql_fetch_array($res)){
$t_field[]?=?$row['Field'];?//Field中的F要大写,否则没有结果
echo?"th".$row['Field']."/th";
echo?"/tr";
//导出100条数据
$sql?=?"select?*?from?users?limit?100";
echo?"tr";
foreach($t_field?as?$f_key){
echo?"td".$row[$f_key]."/td";
echo?"/table";
下面是我写的一个PHP导出数据到CSV问价的函数,你到时候直接调用就行了
/**
*?导出CSV文件
*/
$fileName?=?empty($fileName)?date('YmdHis')?:?$fileName;
//?文件标签
Header("Content-type:?application/octet-stream");
header("Content-type:?application/vnd.ms-excel;?charset=$from_encoding");
Header("Content-Disposition:?attachment;?filename=$fileName.csv");
$str?=?'';
if($data)?{
if(is_array($data))?{
foreach?($data?as?$v)?{
if(is_array($v))?{
foreach?($v?as?$vo)?{
$str?.=?(is_numeric($vo)?"'".$vo?:?$vo."").",";
$str?=?trim($str,?",")."\r\n";
}?else?{
$str?.=?(is_numeric($v)?"'".$v?:?$v).",";
$str?=?$data;
exit;
看你的表格,只需要从表单中循环取出所有行,然后依次写入数据库就行了
通过$a=$_POST["txt1[]"]取得值,然后循环写入:
for($t=0;$t=count($a)-1;$t++){
// insert into 表 (字段1,......) values ('$a[$t]',.....)
至于打印,在JS中直接windows.print就行了
以上就是土嘎嘎小编为大家整理的php里怎么用表格数据相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!