excel的导入导出

导入

public function excel_put(){
	//先做一个文件上传,保存文件
	$path=$_FILES['file'];
	$filePath = "uploads/".$path["name"];
	move_uploaded_file($path["tmp_name"],$filePath);
	//默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
	//表格字段名字
	$data=array('B'=>'name','C'=>'pwd','D'=>'money1','E'=>'salt');
	$tablename='user1';//表名字
	$this->excel_fileput($filePath,$data,$tablename);	
}
private function excel_fileput($filePath,$data,$tablename){
	$this->load->library("phpexcel");//ci框架中引入excel类
	$PHPExcel = new PHPExcel();
	$PHPReader = new PHPExcel_Reader_Excel2007();
	if(!$PHPReader->canRead($filePath)){
		$PHPReader = new PHPExcel_Reader_Excel5();
		if(!$PHPReader->canRead($filePath)){
			echo 'no Excel';
			return ;
		}
	}
	// 加载excel文件
	$PHPExcel = $PHPReader->load($filePath);

	// 读取excel文件中的第一个工作表
	$currentSheet = $PHPExcel->getSheet(0);
	// 取得最大的列号
	$allColumn = $currentSheet->getHighestColumn();
	// 取得一共有多少行
	$allRow = $currentSheet->getHighestRow();

	// 从第二行开始输出,因为excel表中第一行为列名
	for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
		/**从第A列开始输出*/
		//echo $allColumn;
		
		for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){	
			$val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();
			//print_r($val);
			//die;
			
			if($currentColumn == 'A')
			{
				//echo $val."\t";
			}else if($currentColumn <= $allColumn){
				$data1[$currentColumn]=$val;
			}
		}
		foreach($data as $key=>$val){
			$data2[$val]=$data1[$key];
		}
		$this->db->insert($tablename,$data2);
		//print_r($data2);
		//echo "</br>";		
	}
	//echo "\n";
	echo "导入成功";
}



导出

header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=123.xls");

$array=$this->db->get("shop_address")->result_array();
$str = "Id\tName\tPid\n";
foreach ($array as $val) {
	$str .=  $val['id'] . "\t" .$val['name'] . "\t" . $val['pid'] . "\n";
}
echo $str;	



Excel是一种常用的电子表格软件,可以用于数据的存储和处理。在Java中,我们可以使用POI和JXL两种方式来实现Excel导入导出。其中,POI支持Excel 2007及以上版本,而JXL支持比较低版本的Excel,如Excel 95、97、2000、2003。下面是两种方式的简单实例: 1.使用POI实现Excel导入导出 ```java // 导入Excel Workbook workbook = WorkbookFactory.create(new FileInputStream("test.xlsx")); Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { System.out.print(cell.getStringCellValue() + "\t"); } System.out.println(); } // 导出Excel Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello World!"); FileOutputStream outputStream = new FileOutputStream("test.xlsx"); workbook.write(outputStream); outputStream.close(); ``` 2.使用JXL实现Excel导入导出 ```java // 导入Excel Workbook workbook = Workbook.getWorkbook(new File("test.xls")); Sheet sheet = workbook.getSheet(0); for (int i = 0; i < sheet.getRows(); i++) { for (int j = 0; j < sheet.getColumns(); j++) { Cell cell = sheet.getCell(j, i); System.out.print(cell.getContents() + "\t"); } System.out.println(); } // 导出Excel WritableWorkbook workbook = Workbook.createWorkbook(new File("test.xls")); WritableSheet sheet = workbook.createSheet("Sheet1", 0); Label label = new Label(0, 0, "Hello World!"); sheet.addCell(label); workbook.write(); workbook.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值