在过去的几个小时里我一直遇到类似的问题,我终于得到了一个导入工作,所以我会分享我的解决方案,即使它可能对原始海报没有帮助。
简短版:
1.) 如果是 Excel 文件,另存为 ODS(打开文档电子表格)格式。1a。)如果文件是某种带有分隔符的文本格式(如原始海报那样),则打开 Excel,一旦在 Excel 中使用 File/Open 打开文件。在那里,您将能够选择适当的分隔符来查看文件。确保文件看起来没问题,然后保存为 ODS 格式(并关闭文件)。
2.) 在 OpenOffice Calc 中打开文件(从 Oracle/Sun 免费下载)。
2a.) 按 Ctrl-F 打开查找对话框。单击更多选项并确保未选中“仅当前选择”。
2b.) 搜索双引号。如果您的文件中没有,您可以跳过第 4 步和第 5 步。
3.) 另存为 -> 文本 CSV。选择UTF-8格式的选项(按“u”3次快速到达那里),选择“;” (分号)作为分隔符,并为文本选择双引号。
4.) 如果在步骤 2b 中在您的文件中找到任何双引号,请继续,否则只需使用 phpMyAdmin 将文件导入为 CSV(参见步骤 6)。它应该工作。
5a.) 在 Word 或任何其他可以执行查找 -> 全部替换的文本编辑器中打开。
5b.) 通过搜索 """ 查找连续三个双引号的所有实例(如果您确实找到了,您甚至可能想要连续搜索 4、5、6 等,直到出现空行)。
5c.) 用 csv 中其他任何地方都找不到的占位符替换“”。我用“abcdefg”替换了它们。
5d.) 查找 -> 将 "" (连续两个双引号)的所有实例替换为 "(正斜杠和双引号)。
5e.) 查找 -> 将 abcdefg 的所有实例(或您在步骤 5c 中选择的占位符)替换为“”。5c 和此步骤确保在文本分隔引号之前出现在字段末尾的任何引号都被正确“转义”。
5f.) 最后,保存文件,保存为 UTF-8(或导入所需的任何格式)。
6.a) 在phpMyAdmin中,点击“导入”选项卡,点击“选择文件”按钮,选择刚刚保存的文件。
6b.) 在“导入文件的格式”下应选择 CSV。如果列名在第一行,请确保选中该复选框。最重要的是,“字段终止于”应设置为 ; (分号),“被包围的字段”应设置为“(双引号),并且“被转义的字段”应设置为 \(正斜杠)。您按照步骤 3 在文件中进行设置,如果按照步骤 5a - 5f 需要。
7.) 点击“开始”并祈祷你没有浪费一个小时。
既然短版已经这么长了,我将跳过长版。
可以这么说,通过 phpmyadmin 导入似乎存在 2 个主要问题。1.) 存在某种内存问题,阻止导入大型 Excel 和 ODS 文件(有多大?还不确定)。2.) OpenOffice 和 Excel 似乎都没有以与 phpmyadmin 兼容的方式保存它们的 csv 文件。他们想用双引号转义双引号。phpMyAdmin 想要用其他东西转义双引号,比如正斜杠。
第一个问题有望在更新 phpmyadmin(和/或 Excel 导入插件“PHPExcel”)中得到解决。如果有一种简单的方法可以更改保存为 CSV 的 Excel 或 ODS 文件的转义字符,或者可以使 phpMyAdmin 与其格式兼容(这实际上应该很容易。只需让它执行相同的操作,就可以修复第二个问题我们在上面手动执行的查找替换操作以避开双引号问题)。
我希望这对某人有所帮助,因为我花了 3 到 4 个小时来发现这个解决方案,然后又在这里写了一个小时。我希望它不会太长,但我希望能帮助所有专业水平的人,从零到我所在的任何地方(可能在 0.1 左右)。