【问题标题】:How to export table to excel from mysql database?如何将表从mysql数据库导出到excel?
【发布时间】:2014-04-08 08:00:37
【问题描述】:

我在 mysql 中有一个表,它对于超过 100k 行来说非常大,我想将它导出到 excel。但是,我在 phpmyadmin 上尝试了导出到 excel 功能,但转储 excel 文件需要很长时间。它甚至不是倾销。错误始终是“连接已重置”。有没有其他方法可以做到这一点??

【问题讨论】:

  • 100,000 行需要 OfficeOpenXML 格式的 .xlsx 文件,或 BIFF 格式的 .xls 文件中的 2 个工作表,因为 xls 文件每个工作表最多可以有 65,536 行
  • 用php读取所有行并使用它导出为ex​​cel文件github.com/PHPOffice/PHPExcel/blob/develop/Documentation/…
  • 转储到 csv 文件。
  • @MarkBaker 实际上,我能够弄清楚一些事情并删除了一些行,现在它已经下降了 40k。我应该如何导出表格?
  • 取决于您是否需要真正的 Excel 格式文件,或者 csv 文件是否足够

标签: php mysql excel phpmyadmin export


【解决方案1】:

首先,Excel 中的 10 万行听起来是个可怕的想法,当然这需要一段时间。这将需要一段时间才能打开。如果您必须这样做,请尝试:

SELECT order_id,product_name,qty
FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

这应该会为您提供一个名为:/tmp/orders.csv 的文件,该文件将在 Excel 中打开。

【讨论】:

    【解决方案2】:

    导出缓慢可能是由于运行 phpmyadmin 的服务器所致。我经常以惊人的速度导出数百万行。

    如果您可以访问数据库服务器的文件系统,这是一种非常快速的转换为 .csv 的方法,而 .csv 又可以被 Excel 打开。

    SELECT order_id,product_name,qty
    FROM orders
    INTO OUTFILE '/tmp/orders.csv'
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    

    看到这个:http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/

    【讨论】:

      【解决方案3】:

      我之前使用过OUTFILE 方法来执行此操作:

      SELECT
          'First Name',
          'Last Name',
          'Email Address'
      UNION
      SELECT
          First_Name,
          Last_Name,
          Email
      INTO OUTFILE
          '/tmp/data_2012-05-03.csv'
      FIELDS TERMINATED BY ',' ENCLOSED BY '"'
      FROM
          `data`
      WHERE
          Reg_Date >= '2012-05-02 00:00:00' AND
          Reg_Date <= '2012-05-02 23:59:59' AND
          Email_Status = 1;
      

      【讨论】:

      • 您好,感谢您的回复。我可以知道您在哪里执行此代码吗?
      • 对不起,我不确定你的意思。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 2020-05-15
      • 2013-09-09
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      相关资源
      最近更新 更多