修订版 PHP 导入 、导出EXCEL

<?php

header("Content-Type: text/html; charset=utf-8");

require_once './PHPExcel.php';
require_once './PHPExcel/IOFactory.php';
require_once './PHPExcel/Reader/Excel5.php';


/**
*    读取Excel表格
*    @param $filePath   Excel文件路径
*    @param $field        需要保存的字段        array('id','username','password')
*    @param $column        读取Excel那列        array('A','B','C')
*    @param $start        从第几行遍历        num
*    @examlpe
*/    




    $filePath = 'Book1.xls';
    
    $column = array( 'A','B','C','D','E');
    $start = 1;
    $list = readExcel($filePath,$column,$start);

    
function readExcel($filePath,$column,$start){

    $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format

    $objPHPExcel = $objReader->load($filePath); //$filename可以是上传的文件,或者是指定的文件

    $sheet = $objPHPExcel->getSheet(0);

    $highestRow = $sheet->getHighestRow(); // 取得总行数
    
    $highestColumn = $sheet->getHighestColumn(); // 取得总列数
    
    
    for($j=$start;$j<=$highestRow;$j++)
    {
        $colData = array();
        $count = count($column);
        for($i=0;$i<$count;$i++){
            
            //$colData["id".($i+1)] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
            $colData[$column[$i]] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
            
        }
        
        $excelData[] = $colData;
        
    }
    
    return $excelData;
}



//$data = array(array('a','b','c','d'),array('e','f','g','h'));
$field = array('A','B','C','D','E','F');
exportexcel($list,$field,'test1111.xls','aaaaaaa');
/**
*    导出数据为excel表格
*    @param $data    一个二维数组,结构如同从数据库查出来的数组
*    @param $title   excel的第一行标题,一个数组,如果为空则没有标题
*    @param $filename 下载的文件名
    $param $field    保存到excel 的 第几行  的第几列
*    @examlpe
    exportexcel($data,$field,'test.xls','这是个测试');
*/
function exportexcel($data,$field,$filename,$title){

        $objPHPExcel = new PHPExcel; //实例化excel类  
        
        //$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //实例化excel5(2007以前的版本)写入类

        $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);



         /* 设置当前的sheet */
        $objPHPExcel->setActiveSheetIndex(0);
        $objActSheet = $objPHPExcel->getActiveSheet();
        
        /**shee标题**/
        $objActSheet->setTitle($title);
        
        $fields = '';
        $i = 1;
        foreach($data as $value){
            $j = 0;
            foreach($value as $k=>$v){
                
                
                $fields = $field[$j].$i;
                
                
                $objActSheet->setCellValue($fields,$v);
                $j++;
            }
            
            $i++;
        }
        $objWriter->save($filename);
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
        header("Content-Type:application/force-download");
        header("Content-Type:application/vnd.ms-execl");
        header("Content-Type:application/octet-stream");
        header("Content-Type:application/download");
        header('Content-Disposition:attachment;filename='.$filename);
        header("Content-Transfer-Encoding:binary");
        $objWriter->save('php://output');
        

}






?>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是 PHP 代码示例,用于从 MySQL 数据库导出数据到 Excel 文件: ``` <?php // 连接数据库 $conn = mysqli_connect("hostname", "username", "password", "database_name"); // 检查连接是否成功 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 查询数据库并导出Excel 文件 $sql = "SELECT * FROM table_name"; $result = mysqli_query($conn, $sql); // 创建 PHPExcel 对象 $objPHPExcel = new PHPExcel(); // 设置工作表 $objPHPExcel->setActiveSheetIndex(0); $sheet = $objPHPExcel->getActiveSheet(); // 设置标题行 $sheet->setCellValue("A1", "列1"); $sheet->setCellValue("B1", "列2"); ... // 循环读取数据库中的数据 $row = 2; // 从第2行开始 while ($row_data = mysqli_fetch_assoc($result)) { $sheet->setCellValue("A".$row, $row_data["column1"]); $sheet->setCellValue("B".$row, $row_data["column2"]); ... $row++; } // 设置保存路径 $file_name = "导出文件名.xlsx"; $save_path = "导出文件路径/".$file_name; // 保存 Excel 文件 $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save($save_path); // 关闭数据库连接 mysqli_close($conn); // 输出下载链接 echo "文件已导出,请点击 <a href='".$save_path."'>下载</a>"; ``` 以下是 PHP 代码示例,用于从 Excel 文件导入数据到 MySQL 数据库: ``` <?php // 连接数据库 $conn = mysqli_connect("hostname", "username", " ### 回答2: MySQL导入导出Excel是将MySQL数据库中的数据导出Excel表格或将Excel表格中的数据导入到MySQL数据库中。 导出Excel使用的是PHPExcel库,首先需要安装这个库,并在代码中引入相应的类文件。然后连接MySQL数据库,编写SQL查询语句以获取所需数据。接着创建一个Excel对象,设置表头和数据,将查询结果逐行写入到Excel中。最后将Excel保存为文件并提供下载链接。 以下是一个简单的MySQL导出ExcelPHP代码示例: <?php require_once 'PHPExcel/PHPExcel.php'; // 连接MySQL数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 查询数据 $sql = "SELECT * FROM table"; $result = $conn->query($sql); // 创建Excel对象 $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle('Sheet1'); // 设置表头 $objPHPExcel->getActiveSheet()->setCellValue('A1', '列1'); $objPHPExcel->getActiveSheet()->setCellValue('B1', '列2'); $objPHPExcel->getActiveSheet()->setCellValue('C1', '列3'); // 设置数据 $row = 2; while ($row_data = $result->fetch_assoc()) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $row, $row_data['column1']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $row, $row_data['column2']); $objPHPExcel->getActiveSheet()->setCellValue('C' . $row, $row_data['column3']); $row++; } // 保存Excel文件 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('output.xlsx'); // 提供下载链接 echo '<a href="output.xlsx">Download Excel</a>'; // 关闭数据库连接 $conn->close(); ?> 导入Excel同样使用PHPExcel库,首先需要将Excel文件上传到服务器上,并在代码中获取上传文件的路径。然后连接MySQL数据库,编写插入语句以将数据插入到数据库中。接着使用PHPExcel的读取功能,读取Excel文件的内容并逐行插入到数据库中。 以下是一个简单的MySQL导入ExcelPHP代码示例: <?php require_once 'PHPExcel/PHPExcel.php'; // 连接MySQL数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 获取上传文件路径 $file_path = 'path/to/uploaded/file.xlsx'; // 读取Excel文件 $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->load($file_path); $sheet = $objPHPExcel->getSheet(0); // 获取行数 $highestRow = $sheet->getHighestRow(); // 读取数据并插入数据库 for ($row = 2; $row <= $highestRow; $row++) { $column1 = $sheet->getCell('A' . $row)->getValue(); $column2 = $sheet->getCell('B' . $row)->getValue(); $column3 = $sheet->getCell('C' . $row)->getValue(); $sql = "INSERT INTO table (column1, column2, column3) VALUES ('$column1', '$column2', '$column3')"; if ($conn->query($sql) !== TRUE) { echo "Error: " . $sql . "<br>" . $conn->error; } } // 关闭数据库连接 $conn->close(); ?> 以上是一个基本的MySQL导入导出ExcelPHP代码示例,根据实际需求可以进行相应的修改和扩展。 ### 回答3: MySQL导入导出Excel可以使用PHP代码来实现。以下是一个示例代码: 导出Excel文件: ``` <?php // 导出Excel文件 require_once 'PHPExcel.php'; // 创建一个新的PHPExcel对象 $objPHPExcel = new PHPExcel(); // 设置Excel文件的属性 $objPHPExcel->getProperties()->setCreator("Your Name") ->setLastModifiedBy("Your Name") ->setTitle("Excel Document") ->setSubject("Excel Document") ->setDescription("Test document for Excel") ->setKeywords("excel php") ->setCategory("Test"); // 添加数据到Excel文件中 $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello') ->setCellValue('B1', 'World!'); // 导出Excel文件 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="example.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit; ?> ``` 导入Excel文件: ``` <?php // 导入Excel文件 require_once 'PHPExcel.php'; // 获取上传的Excel文件 $file = $_FILES['file']['tmp_name']; // 读取Excel文件内容 $objPHPExcel = PHPExcel_IOFactory::load($file); // 获取第一个工作表 $sheet = $objPHPExcel->getSheet(0); // 获取行数和列数 $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); // 循环读取数据 for ($row = 1; $row <= $highestRow; $row++) { // 读取每一列的数据 for ($col = 'A'; $col <= $highestColumn; $col++) { $data = $sheet->getCell($col.$row)->getValue(); // 处理数据 } } // 处理完数据之后可以进行其他操作 ?> ``` 以上是一个简单示例的MySQL导入导出ExcelPHP代码。你可以根据自己的需求修改代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值