0

Magento的订单导出机制内置不导出商品订单我想问一下如何导出每个订单上的一个Worksheet Worksheet里面的每一条数据都是商品信息

以下是示例

<Workbook>
<Worksheet ss:Name="order1">
    <Table>
        <Row>
            <Cell><Data ss:Type="String">Order #</Data></Cell>
            <Cell><Data ss:Type="String">SKU</Data></Cell>
            <Cell><Data ss:Type="String">Qty</Data></Cell>
        </Row>
        <Row>
            <Cell><Data ss:Type="Number">1</Data></Cell>
            <Cell><Data ss:Type="String">A1</Data></Cell>
            <Cell><Data ss:Type="Number">3</Data></Cell>
        </Row>
        <Row>
            <Cell><Data ss:Type="Number">1</Data></Cell>
            <Cell><Data ss:Type="String">A2</Data></Cell>
            <Cell><Data ss:Type="Number">5</Data></Cell>
        </Row>
    </Table>
</Worksheet>
<Worksheet ss:Name="order2">
    <Table>
        <Row>
            <Cell><Data ss:Type="String">Order #</Data></Cell>
            <Cell><Data ss:Type="String">SKU</Data></Cell>
            <Cell><Data ss:Type="String">Qty</Data></Cell>
        </Row>
        <Row>
            <Cell><Data ss:Type="Number">2</Data></Cell>
            <Cell><Data ss:Type="String">B1</Data></Cell>
            <Cell><Data ss:Type="Number">2</Data></Cell>
        </Row>
        <Row>
            <Cell><Data ss:Type="Number">2</Data></Cell>
            <Cell><Data ss:Type="String">B2</Data></Cell>
            <Cell><Data ss:Type="Number">3</Data></Cell>
        </Row>
    </Table>
</Worksheet>

通过了解lib/Varien/Convert/Parser/Xml/Excel.php,Magento本身不支持multi-Worksheet Export 我打算再写一个Parser,做multi-Worksheet Export。

但是更大的问题,导出数据需要通过app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php的_prepareColumns()处理但是我找不到怎么调用数据库

希望能帮到你,谢谢

4

1 回答 1

0

您可以将 PHPExcel 库放在“lib”中,Magento 将自动加载它,而无需在您的模块中进一步处理(您将需要一个自定义模块)。

由于您正在写作而不是阅读,您应该能够在现有内存中使用 PHPExcel(使用 PHPExcel 导入可能会很大)。

对 PHPExcel 的精细控制可以做的事情没有任何限制,显然您也需要迭代您的订单,并且您的模块将需要一个后端。

你可以把一个骨架模块放在一起,看看你是否可以创建一个 EXcel 文件(弹出一些演示代码,看看它是否能拾取类等)。然后,一旦这些位正常工作,您应该能够导出出色的报告。

http://phpexcel.codeplex.com/

https://stackoverflow.com/a/4816738/1617149

于 2012-09-04T11:16:06.980 回答