分析Excel电子表格数据与CSV的优势?

我有一个Excel电子表格中的表格数据(文件大小可能永远不会大于1 MB)。 我想用PHP来parsing数据并插入MySQL数据库。

将文件保存为.xls / .xlsx并使用PHP Excelparsing库parsing它有什么好处吗? 如果是这样,有什么好的图书馆使用?

明显的是,我可以将.xls / .xlsx保存为CSV文件,并以此方式处理文件。

谢谢!

如果你只是在值之后,我会把它保存为CSV。 这是更容易parsing编程,特别是如果你正试图在非Windows的框。

话虽如此,导出为CSV时会有信息丢失。 它只会保存单元格的值 – 而不是它们的格式化信息,公式等。如果您需要使用这些信息,最好直接从Excel中完成。

这是一个PHP Excel阅读库。 如果您决定直接读取Excel文件,这可能会帮助您开始。

如果你的excel文件包含严格的数据,不包含公式,脚本,macros等,我会说通过Excelparsing只会增加开发开销,并可能会减慢处理速度。 在这种情况下,最好将文件转换为CSV。

还要考虑MySQL的'LOAD DATA INFILE'命令可以用来将整个CSV文件导入到一个表格中,这对于你来说可能会更简单。

请记住,如果您直接将csv文件导入到Mysql,那么您可能会遇到date格式问题(因为Mysql使用不同的date格式到Excel)。 我发现在保存为csv文件之前,首先更改Excel中的date字段(格式为yyyy-mm-dd)更为方便。 编辑:虽然我没有使用它自己,其他人已经推荐Navicat作为一个非常好的工具来转换Excel电子表格或Access数据到Mysql数据库。 可能值得一看。

在Office 2003中,有一种名为SpreadsheetML的XML格式,它位于XML和Excel之间。 我已经考虑过使用这种格式导入/导出数据到网站,但是格式变得有点复杂。 在内部,这种格式将所有引用转换为相对引用。 (相对于当前位置。)更糟糕的是,某些单元格有索引,因此您可能会看到只有两个单元格的行,但第二个单元格可能与第一个单元格相距6列。 (在这种情况下,索引= 5)。基本上,如果你想使用Excel格式,你需要有一个很好的方法来计算每个单元格的位置,并知道如何正确翻译单元格中的引用。 如果您只对数据感兴趣,那么CSV将会更容易实施。 作为一个介于两者之间的解决scheme,您可以定义一个XML模式并向您的电子表格添加一个XML映射,以将数据导出到一个XML文件。 它比CSV i9mport / export更复杂,但也更强大一点。 但是Excel或者Excel XML格式本身实施起来很糟糕。 (或者只是一个很好的挑战,如果你是一个真正的XML专家。)

当您为客户提供上传excel / csv文件的方法时,您应该考虑这一点

  1. CSV文件将只导出一张纸
  2. 多行单元格会使CSVparsing变得复杂
  3. 您不能轻松检测到损坏/不完整的CSV文件
  4. CSV文件不包含格式

除此之外,导入CSV比导入XLS容易得多。