php导入导出excel表格

1 简介

1.1 导出  

在实际的工作项目中,经常需要将一些重要的数据库中存的数据导出成Excel,比如导出考勤报表,导出财务报表,导出业绩报表,导出销售报表等。

1.2 导入  

同时有的项目也需要,将一些Excel数据导入到数据库中。比如银行给的银行流水,销售报表导入的数据库中。这个通常的做法都是使用PHPExcel。  

2导出代码

<pre code_snippet_id="1603104" snippet_file_name="blog_20160309_1_8751202" name="code" class="php" style="font-family: 'microsoft yahei'; white-space: pre-wrap;">$kit=new kit();  
$kit->downloadkitofferFile("配件订单",$re);//调用导出方法
/**    
* 导出配件订单    
* @param int $ilename 生成的表格名称</span>  
* @param int $exportDatasss 需要导出的数据数组
*/  

 
 function downloadkitofferFile($filename, $exportDatasss){
    header("Content-type:text/csv");
    $filename = iconv('utf-8', 'gb2312', $filename);   
    $file_ending = "csv";
    header("Content-Disposition:attachment;filename=" . $filename . '.' . $file_ending);
    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
    header('Expires:0');
    header('Pragma:public');
    $output = "订单编号, 订单类型, 零件编号, 零件名称, 总价, 下单时间, 订单状态\n";//表格中的每一列名称
    $output = iconv('utf-8', 'gb2312', $output);   //转码
    foreach($exportDatasss as $val){
        $id = iconv('utf-8', 'gb2312', $val['did']);
        $kname = iconv('utf-8', 'gb2312', $val['typevalue']);
        $brand = iconv('utf-8', 'gb2312', $val['kid']);
        $system = iconv('utf-8', 'gb2312', $val['kname']);
        $type = iconv('utf-8', 'gb2312', $val['total']);
        $costprice = iconv('utf-8', 'gb2312', $val['ctime']);
        $storagstrate = iconv('utf-8', 'gb2312', $val['state']);
        $output .= $id .",". $kname .",". $brand .",". $system .",". $type .",". $costprice .",". $storagstrate ."\n"; //用引文逗号分开  
    }
    echo $output;
  }
 //转码
3.导入代码

3.1执行导入的代码 do.php

include_once ("connect.php");

$action = $_GET['action'];
if ($action == 'import') { //导入CSV
	$filename = $_FILES['file']['tmp_name'];
	if (empty ($filename)) {
		echo '请选择要导入的CSV文件!';
		exit;
	}
	$handle = fopen($filename, 'r');
	$result = input_csv($handle); //解析csv
	$len_result = count($result);
	if($len_result==0){
		echo '没有任何数据!';
		exit;
	}
	for ($i = 1; $i < $len_result; $i++) { //循环获取各字段值
		$name = iconv('gb2312', 'utf-8', $result[$i][0]); //中文转码
		$sex = iconv('gb2312', 'utf-8', $result[$i][1]);
		$age = $result[$i][2];
		$data_values .= "('$name','$sex','$age'),";
	}
	$data_values = substr($data_values,0,-1); //去掉最后一个逗号
	fclose($handle); //关闭指针
	$query = mysql_query("insert into student (name,sex,age) values $data_values");//批量插入数据表中
	if($query){
		echo '导入成功!';
	}else{
		echo '导入失败!';
	}
} elseif ($action=='export') { //导出CSV
    $result = mysql_query("select * from student");
    $str = "姓名,性别,年龄\n";
    $str = iconv('utf-8','gb2312',$str);
    while($row=mysql_fetch_array($result)){
        $name = iconv('utf-8','gb2312',$row['name']);
        $sex = iconv('utf-8','gb2312',$row['sex']);
    	$str .= $name.",".$sex.",".$row['age']."\n";
    }
    $filename = date('Ymd').'.csv';
    export_csv($filename,$str);
}
function input_csv($handle) {
	$out = array ();
	$n = 0;
	while ($data = fgetcsv($handle, 10000)) {
		$num = count($data);
		for ($i = 0; $i < $num; $i++) {
			$out[$n][$i] = $data[$i];
		}
		$n++;
	}
	return $out;
}

function export_csv($filename,$data) {
    header("Content-type:text/csv");
    header("Content-Disposition:attachment;filename=".$filename);
    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
    header('Expires:0');
    header('Pragma:public');
    echo $data;
}
3.2 connect.php

$host="localhost";
$db_user="root";
$db_pass="";
$db_name="demo";
$timezone="Asia/Shanghai";

$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8");

3.3选择文件的代码

<form id="addform" action="do.php?action=import" method="post" enctype="multipart/form-data">
      <p>请选择要导入的CSV文件:<br/><input type="file" name="file"> <input type="submit" class="btn" value="导入CSV">
      <input type="button" class="btn" id="exportCSV" value="导出CSV" onClick="window.location.href='do.php?action=export'"></p>
 </form>



4代码集

4.1附加上传代码

php导入代码

4.2附加导出代码

php导出代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值