Magento使用phpexcel导出 商品订单 /订单条目表sales_flat_order_item

PHPExcel导出订单数据实例,含图片导出对齐方式背景颜色 阅读详情
<?php
/**
 * 导出商品订单(订单条目表sales_flat_order_item)
 * @date 2015年6月9日
 */

define('MAGENTO', realpath(dirname(__FILE__)));
require_once MAGENTO . '/app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

//echo date('Y-m-d H:i:s',strtotime('2015-06-02') - 7*3600);
//准备订单的查询条件
$order_status = isset($_GET['status']) ? $_GET['status'] :'Pending'; //订单状态
/*时间数据库存的是格林威治时间,所以查询时应该减去7个小时*/
$order_created = $_GET['created'] = '2015-06-08';  //订单创建时间
$order_created = date('Y-m-d H:i:s',strtotime($_GET['created']) - 7*3600);
//$order_payment = isset($_GET['payment']) ? $_GET['payment'] :'checkmo'; //订单支付方式,checkmo:货到付款

//1.查询
/*
不同商品一条记录
*/

$sql = "SELECT
  order_table.increment_id,item_table.parent_item_id,
item_table.created_at,item_table.sku,item_table.name,item_table.qty_ordered,item_table.original_price,item_table.price,item_table.row_total,item_table.row_weight,
order_table.customer_email, CONCAT_WS('',order_table.customer_firstname,order_table.customer_middlename,order_table.customer_lastname) AS `BilltoName`, CONCAT_WS('',address_table.firstname,address_table.middlename,address_table.lastname) AS `ShiptoName`, CONCAT_WS(', ',address_table.street,address_table.city,address_table.region) AS `ShippingAddress`,
 address_table.city,region_table.code,address_table.postcode,
 address_table.telephone
FROM sales_flat_order_item AS item_table
LEFT JOIN sales_flat_order AS order_table ON order_table.entity_id=item_table.order_id
LEFT JOIN sales_flat_order_address AS address_table ON address_table.parent_id=order_table.entity_id
LEFT JOIN directory_country_region AS region_table ON region_table.default_name=`address_table`.region
WHERE item_table.created_at >= '{$order_created}' AND address_table.address_type='shipping' and order_table.`status`='{$order_status}'";


$handle = Mage::getSingleton('core/resource')->getConnection('core_write');
$query = $handle->query($sql);
$order_list = array();
while ($row = $query->fetch()) {
    /*parent_item_id如果存在,该记录行价格就为0,这里排除*/
   if(!isset($row['parent_item_id'])){
       $order_list[] = $row;
   }
}



/*
*+----------------------------------------------------------------------
*   PHPExcel导出Excel表格
*   array $rearr  需要导出的数组
*+----------------------------------------------------------------------
*/
function export($rearr) {
    $result = array(
        '订单编号',
        '时间',
        'SKU',
        '商品名称',
        '数量',
        '原价',
        '成交价',
        '总价',
        '付款人Email',
        '付款人名称',
        '收货人名称',
        '收货人地址',
        '收货人城市',
        '州或省',
        '收货邮编',
        '收货人电话'
    );
    $arr = array(
        'A',
        'B',
        'C',
        'D',
        'E',
        'F',
        'G',
        'H',
        'I',
        'J',
        'K',
        'L',
        'M',
        'N',
        'O',
        'p'
    );
    //导入excel类
    require_once MAGENTO . '/lib/PHPExcel/PHPExcel.php';
    // 创建一个excel
    $objPHPExcel = new PHPExcel();

    /****************************************设置居中开始**************************************/
    foreach ($arr as $key => $value) {
        $objPHPExcel->getActiveSheet()->getStyle($value)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    }
    /****************************************设置居中结束**************************************/
    // 循环$arr定义的列设置每列内容居中
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file");

    /**************************************设置标题开始*****************************************/
    // 循环$arr定义的列和$result设置表头
    $objPHPExcel->setActiveSheetIndex(0);
    foreach ($arr as $key => $value) {
        $objPHPExcel->getActiveSheet()->setCellValue($value . "1", $result[$key]);
    }
    /**************************************设置标题结束*****************************************/

    /**************************************设置内容开始*****************************************/
    $objPHPExcel->setActiveSheetIndex(0);
    $i = 2;
    // $rearr需要导出的数据二维数组
    foreach ($rearr as $key => $value) {
        // 这里从二维数组里面通过键名获取到值放到相应的表格中
        $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $value['increment_id']);
        $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, date('Y-m-d H:i:s',strtotime($value['created_at']) - 7*3600));
        $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $value['sku']);
        $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $value['name']);
        $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $value['qty_ordered']);
        $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $value['original_price']);
        $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $value['price']);
        $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $value['row_total']);
        $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $value['customer_email']);
        $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $value['BilltoName']);
        $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $value['ShiptoName']);
        $objPHPExcel->getActiveSheet()->setCellValue('L' . $i, $value['ShippingAddress']);
        $objPHPExcel->getActiveSheet()->setCellValue('M' . $i, $value['city']);
        $objPHPExcel->getActiveSheet()->setCellValue('N' . $i, $value['code']);
        $objPHPExcel->getActiveSheet()->setCellValue('O' . $i, $value['postcode']);
        $objPHPExcel->getActiveSheet()->setCellValue('P' . $i, $value['telephone']);
        $i++;
    }
    /**************************************设置内容结束*****************************************/

    /**************************************设置宽度开始*****************************************/
    // 循环$arr定义的列设置每列宽度
    foreach ($arr as $key => $value) {
        if($value == 'D'){
            $objPHPExcel->getActiveSheet()->getColumnDimension($value)->setWidth(70);
        }elseif($value == 'K'){
            $objPHPExcel->getActiveSheet()->getColumnDimension($value)->setWidth(50);
        }else{
            $objPHPExcel->getActiveSheet()->getColumnDimension($value)->setWidth(20);
        }

    }
    /**************************************设置宽度结束*****************************************/

    //导出的文件名
    $filename = 'orderItem-'.date('Y-m-d',time()).'.xls';
    /**************************************设置导出下载开始*****************************************/
    $objPHPExcel->getSheet(0)->setTitle('phpexcel'); // 工作区域标题
    header('Content-Type: application/vnd.ms-excel');
    header("Content-Disposition: attachment;filename=$filename");//导出文件
    header('Cache-Control: max-age=0');
    header('Cache-Control: max-age=1');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
    header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
    header('Pragma: public'); // HTTP/1.0
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');//导出文件
    /**************************************设置导出下载结束*****************************************/
}


//导出
export($order_list);

AI + 药物临床试验研发赛道 研究日期:2026-07-09 | 研究主题:AI + 药物临床试验研发赛道 | 聚焦岗位:Agent 平台架构师 / AI 工程架构师。 阅读详情

相关推荐

华为擎云W515 PGUV-WBY0安装银河麒麟V10全流程解析

本文详细解析了华为擎云W515 PGUV-WBY0安装银河麒麟V10系统的全流程,包括准备工作、镜像下载与校验、启动盘制作、BIOS设置、安装过程关键选择、系统初始化及常见问题排查。特别针对ARM架构设备提供了实用技巧,帮助用户顺利完成国产化系统的部署与优化。

weixin_28725949的博客 695

power的数据库设计MySQL_使用 PowerDesigner 设计数据库 - ~~鱼跃~~ - 博客园

数据库的结构(例如表、关系、视图和触发器)称为数据库模式。可使用 SQL 语句创建这些元素并按照所需的方式进行排列,但是如果不使用图形工具,则可能会造成混淆。PowerDesigner 提供了一种数据库结构的图形表示。只需绘制新表或输入信息,即可更好地修改数据库的结构或创建全新的表。在设计完成后,PowerDesigner 可生成一个 SQL 脚本以生成新的数据库。下面的图示显示了示例数据库的结构...

weixin_42458217的博客 506

用deepseek部署全自动的机器人--bytebot

Bytebot是一款开源AI桌面代理,提供完整的虚拟桌面环境,支持跨应用任务处理、文件管理、文档处理等复杂工作流。其技术架构包含核心控制、LLM代理、UI等组件,支持Docker和Kubernetes部署。本文演示了基于CloudStudio的部署流程,包括环境配置、Docker部署及DeepSeek API集成,实现多模型调用功能。

Kin 2480

magento2后台订单带商品导出sql

表头: id created_at base_total_invoiced subtotal_incl_tax subtotal_invoiced base_shipping_incl_tax total_online_refunded base_total_refunded tax_amount tax_invoiced tax_refunded customer_email status sku sql: select ...

350

unet学习笔记(milesial/Pytorch-UNet)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 unet学习笔记(milesial/Pytorch-UNet)原理讲解unet_parts.py内容predict.py内容 所用到的代码Pytorch-UNet/predict.py at master · milesial/Pytorch-UNet ·GitHub 原理讲解 蓝/白色框表示 feature map; 蓝色箭头表示 3x3 卷积,用于特征提取; 灰色箭头表示skip-connection,用于特征融合; 红色箭头.

weixin_67138138的博客 2553

京东云鼎环境配置与API安全接入实战:ISV服务商如何搞定数据加密与商家授权

本文详细介绍了京东云鼎环境配置与API安全接入的实战指南,帮助ISV服务商解决数据加密与商家授权等核心问题。通过京东开放平台的应用申请流程,结合多租户数据隔离策略和自动化授权实现,确保电商生态中的安全高效运营。文章还提供了避坑指南,助力开发者规避常见配置错误。

weixin_28705087的博客 352

sales_flat_order

ALTER TABLE `sales_flat_order` ADD `check_times` SMALLINT(5) NOT NULL COMMENT '新增字段check_times,作为其他状态的检查次数,设定5次以下的重复检查,将检查结果更新到status' ;

iiiiiiiiiiii9的专栏 488

RimWorld Mod开发避坑指南:从Defs命名规范到XML结构详解(附实战代码)

本文深入解析RimWorld Mod开发中Defs文件的编写规范与高级技巧,涵盖命名冲突预防、XML结构优化及高级功能实现。通过实战代码示例,帮助开发者避开常见陷阱,提升Mod兼容性与稳定性,特别适合RimWorld Mod开发者参考。

weixin_30790841的博客 449

TP -- 订单的导出,phpexcel 类应用

TP -- 订单的导出 进入后台--订单管理 在后台新建 Order控制器 class OrderController extends BackController{ public function index(){         $order = M("order");//你们需要分页         $data = $order->order("create_time desc"

echocdzh的博客 2297

线性自抗扰控制(LADRC)系统算法框图

NLADRC自抗扰控制从Simulink仿真到PLC控制实现_自抗扰控制器 simulink仿真-优快云博客本文介绍了如何将ADRC自抗扰控制算法从Simulink仿真应用到PLC控制中,包括Simulink框图、TD微分器模型、MATLAB函数的使用、SCL控制代码,以及非线性状态误差反馈控制率的实现。提供了详细的MATLAB仿真步骤和PLC源代码链接。ADRC自抗扰控制算法(含梯形图完整源代码和算法公式)_adrc算法-优快云博客。

RXXW_Dor的博客 1461

一文搞懂电流、电压的有效值 RMS

交流电有正半周、负半周,直接平均可能抵消成 0,但负半周一样会发热。这个交流电如果换成直流电,能产生同样发热功率时,对应的直流电压或电流”,电容耐压通常不能按 220V 选,常见会选 400V 或更高余量。所以做硬件时,220VAC 整流滤波后电容上会接近。电压/电流的有效值,也叫。如果它加在电阻上,发热按。

qq_52293640的博客 446

magento 后台导出订单同时导出产品信息 代码

require_once'Mage/Adminhtml/controllers/Sales/OrderController.php';class EM_DeleteOrder_Adminhtml_Sales_OrderController extendsMage_Adminhtm

1264

作物生长模型Oryza V3实战1:为什么要研究它

ORYZAV3是水稻生长模拟模型ORYZA2000的最新升级版本(3.5版),作为作物生长模型,它通过数学方法和计算机技术模拟水稻生长发育过程及其与环境条件的相互作用。主要功能包括:模拟不同条件下的水稻生长和产量形成、评估环境胁迫影响、分析土壤碳氮动态以及进行区域尺度模拟。国内应用广泛,科研机构用于气候变化影响评估、灌溉模式比较等研究,并开展参数敏感性分析和应用培训。使用流程分为六个步骤:确定输入参数(气象、土壤、作物三类)、参数校准、设置模拟环境、运行模型、分析结果(输出50个参数)和计算产量(穗干重×收

503

Magento 后台自定义导出订单

1.最终效果 2.html部分 找到:\app\design\adminhtml\default\default\template\widget\grid\container.phtml文件。 写如下代码: getHeaderWidth() ?>">getHeaderHtml() ?> <?php /

1661

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

magento下生成excle文件方法

注意,这种方法本质上是生成xml文件,但excel是能打开这种xml格式,以下是一个demo: $data=array( array('name','birthday'), array('tom','1985'), array

曾健生的专栏 1218

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

magento|后台订单列表增加显示数据

magento后台的订单列表显示数据过少,而对订单导出的时候,显示的数据和导出的一致。所以为了导出更多订单数据和显示更多数据,就有必要在订单列表调用更多数据。具体效果如下图: 可以看到显示的数据更加丰富,不用再点击到订单详情页进行数据的核对和查看,非常方便。具体修改的文件为:app\code\core\Mage\Adminhtml\Block\Sales\Order\Grid.php。修改的...

吖权 858

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

magento 检测 订单号, 是否真的存在/ sales/order_item 表进行查找 里面所有字段

$orderItems = Core::getModel('sales/order_item')->getCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('product_type', array('eq'=>'simple')); //print_r($orderItems);die; foreach($order

小画家 753

ecshop使用PHPEXCEL批量导出订单信息

1.在这里下载PHPEXCEL http://pan.baidu.com/s/1dDF3PWd ,把其中的Classes文件夹解压的根目录下,如图所示: 2.admin/templates/order_list.htm,在后,添加 3.admin/order.php,在‘/* 批量打印订单 */’前,添加 /* 批量导出订单 */ elseif (isset($_POST['ex

GlatChen的专栏 4844

tp5 PHPExcle 导出多商品订单

tp5 PHPExcle 导出多商品订单 例子 代码: public function export(){ if ($this->request->isPost()) { set_time_limit(0); $search = $this->request->post('search'); $ids = $this->request->post('ids');

qq_16144799的博客 989

Magento导出订单同时导出产品信息

Magento导出订单同时导出产品信息,根据业务扩展,Magento自身的功能也越来越满足不了我们的需求了。今天Hicoogle根据需求改善批量导出订单的同时,也要带上该订单的产品信息。花了一点时间,在网上找一些资料,完成了这项功能。今天Hicoogle把它分享出来。以下是部分代码,由于代码较长,在代码尾部附上下载该代码文件。 该功能需要插件Webshopapps来支持,下载地址http://w...

weixin_30800807的博客 194

如何实现magento 订单批量导出?

现在很多做seo 优化的,一次会建好几十个站,有的更是上百个, 如果你有几百个站,一天几百个订单,那网站管理人员每天整理订单将是件非常繁琐的一件事情,要每个网站登录进去查看。     这里介绍一个思路,如何里导出所有的订单,   第一步  首先先把订单号取出来。 require_once 'app/Mage.php'; $app = Mage::app("default");

rgbcn的专栏 1232

商品SKU设计

淘宝网商品SKU系统设计经验分享 PHP商城 商品模块 数据库 表设计 Refer:

逐月 7883

购物车订单、订单项逻辑分析

参考:http://how2j.cn/k/cart/cart-tutorials/595.html 1、 Order 订单 2、OrderItem 订单项 订单项和订单的关系: 多对一 一个订单里有多条订单项 一个订单项,只会出现在一个订单里, 以下类中set、get方法省略 public class Order { int id; User user;//方便e...

root_zhb的博客 9775

PHP PHPExcel导入excel表格订单

require '../phpexcel/Classes/PHPExcel/IOFactory.php'; //PHPExcel git地址:https://github.com/PHPOffice/PHPExcel //获取文件类型后缀 function extend($file_name){ $extend = pathinfo($file_name); $exten

如果暴力不是为了杀戮 1385

Magento系统:导出完整的Order数据

公司做了个ERP系统,要求要把Magento数据库的Order数据导出excel数据,然后再导入到ERP中。但是Magento的数据库表很散,所以要导出完整的Order数据,要使用多表连接查询。  首先:修改数据库 对数据库表 `directory_country`添加了一列`country_name`,这列允许行为空!再把对应的国家名字添加上去。 country_name

爱笑的天使 1771
上一篇: JS数组的常用方法总结
下一篇: 如何在magento模板文件中获取controller名称,action名称和module name
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值