21,893
社区成员




public function read($filename,$encode='utf-8'){
// vendor('Excel.PHPExcel');
import('Org.Util.PHPExcel');
// $upload = \PHPExcel_IOFactory::
$objReader = \PHPExcel_IOFactory::createReader(Excel5);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($filename);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = \PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for ($row = 1; $row <= $highestRow; $row++) {
for ($col = 0; $col < $highestColumnIndex; $col++) {
$excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
}
return $excelData;
}
public function excel(){
$this->display();
}
public function runexcel(){
if (! empty ( $_FILES ['file_stu'] ['name'] ))
{
$tmp_file = $_FILES ['file_stu'] ['tmp_name'];
$file_types = explode ( ".", $_FILES ['file_stu'] ['name'] );
$file_type = $file_types [count ( $file_types ) - 1];
/*判别是不是.xls文件,判别是不是excel文件*/
if (strtolower ( $file_type ) != "xls")
{
$this->error ( '不是Excel文件,重新上传' );
}
/*设置上传路径*/
$savePath = './Uploads/';
/*以时间来命名上传的文件*/
$str = date ( 'Ymdhis' );
$file_name = $str . "." . $file_type;
/*是否上传成功*/
if (! copy ( $tmp_file, $savePath . $file_name ))
{
$this->error ( '上传失败' );
}
/*
*对上传的Excel数据进行处理生成编程数据,这个函数会在下面第三步的ExcelToArray类中
注意:这里调用执行了第三步类里面的read函数,把Excel转化为数组并返回给$res,再进行数据库写入
*/
$res = $this->read ( $savePath . $file_name );
/*
重要代码 解决Thinkphp M、D方法不能调用的问题
如果在thinkphp中遇到M 、D方法失效时就加入下面一句代码
*/
// spl_autoload_register ( array ('Think', 'autoload' ) );
/*对生成的数组进行数据库的写入*/
unset($res[1]);
$r = 0;
$d = 25569;
$t = 24 * 60 * 60;
foreach ( $res as $k => $v )
{
if ($k != 0)
{
$data ['order_number'] = $v[0];
$data ['member_name'] = $v[1];
$data ['member_alipay'] = $v[2];
$data ['member_payment'] = $v[3];
$data ['member_postage'] = $v[4];
$data ['membe_integral'] = $v[5];
$data ['aggregate_amount'] = $v[6];
$data ['rebate_integral'] = $v[7];
$data ['member_actual_payments'] = $v[8];
$data ['member_actual_integral'] = $v[9];
$data ['order_status'] = $v[10];
$data ['member_message'] = $v[11];
$data ['consignee_name'] = $v[12];
$data ['consignee_address'] = $v[13];
$data ['Shipping_method'] = $v[14];
$data ['telephone_number'] = $v[15];
$data ['mobile_phone'] = $v[16];
$va = gmdate('Y-m-d H:i:s', ($v[17]- $d) * $t);
$vb = gmdate('Y-m-d H:i:s', ($v[18]- $d) * $t);
$data ['create_time'] = strtotime($va);
$data ['payment_time'] = strtotime($vb);
$data ['baby_title'] = $v[19];
$data ['baby_species'] = $v[20];
$data ['logistics_number'] = $v[21];
$data ['logistics_company'] = $v[22];
$data ['order_remarks'] = $v[23];
$data ['boby_number'] = $v[24];
$data ['shop_id'] = $v[25];
$data ['shop_name'] = $v[26];
$data ['order_closure'] = $v[27];
$data ['seller_service_fee'] = $v[28];
$data ['buyers_service_fee'] = $v[29];
$data ['commercial_invoice'] = $v[30];
$data ['phone_orders'] = $v[31];
$data ['Phase_order_information'] = $v[32];
$data ['deposit_ranking'] = $v[33];
$data ['modified_sku'] = $v[34];
$data ['modified_orders_address'] = $v[35];
$data ['error_info'] = $v[36];
// show_bug($data);die;
$r++;
$result = M ( 'financial' )->add ( $data );
if (! $result)
{
$this->error ( '导入数据库失败' );
}
}
}
$this->success("导入成功,共导入" . $r . "条数据" ,U('excel'),3);
}
}
我的代码好像用不了getFormattedValue();
设置单元格格式 已经试过了 没有用