如何防止 LibreOffice Calc 将 CSV 保存为 text/html?
Posted
技术标签:
【中文标题】如何防止 LibreOffice Calc 将 CSV 保存为 text/html?【英文标题】:How to prevent LibreOfficeCalc from saving CSV as text/html? 【发布时间】:2021-10-20 04:09:32 【问题描述】:我正在尝试将 CSV 文件上传到 WordPress(WooCommerce 产品导入器),但它一直说“出于安全原因不允许文件类型”。问题是,我自己通过将一个较大的文件分成三个来创建文件。它接受了大文件(但后来由于另一个原因失败了),它也接受了三个文件中的第一个。但不是其他两个。
底线:一旦我使用 LibreOfficeCalc 保存文件,mime 类型就会从 text/plain
更改为 text/html
(使用 file --mime-type myfile-2.csv
测试)——因为它主要有一个包含大量 HTML 文本的列 Description
.
我也无法通过添加随机的非 HTML 列来影响 mimetype。
我可以在“编辑过滤器设置”下更改分隔符和文件编码,但不能更改 mimetype。是否有其他地方的复选框,或者我可以在某些 ini 文件中设置的配置来防止这种行为?
另外,如何将 bash 中的 mimetype 从一种转换为另一种?答案here 并没有真正帮助,因为我无法修改上传的请求标头,而gs
似乎是特定于 PDF 的解决方案。
# Ubuntu 18.04.5.
$ bash --version
> GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu)
样本数据:
"wpid";"_SKU";"_name";"Description"
166678;23009;"CSM-AR9281X-99F-V1A";"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam quis accumsan augue. Sed fermentum, eros ac ullamcorper auctor, nunc erat sodales mauris, ut pretium ante odio et ex. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed metus sem, varius nec odio ut, vehicula ornare dolor. Proin feugiat eros vitae odio pharetra, sed suscipit augue accumsan. Sed ipsum lorem, vestibulum sed ex eu, mattis accumsan tellus. Sed interdum, sem ac molestie aliquam, nunc mi ullamcorper massa, vitae viverra metus nisi at ante. Donec id nisi lacus. Sed aliquet, ex quis interdum efficitur, nisi risus facilisis massa, in tristique libero turpis ac tortor. Etiam auctor turpis nec sodales placerat. Aenean auctor interdum felis.
<br><br>
Maecenas vel arcu quis magna suscipit tempor id et metus. Duis volutpat fringilla sem. Nulla pharetra, turpis maximus tristique fermentum, arcu arcu volutpat diam, a imperdiet turpis ante et libero. Nulla nisl elit, suscipit ac luctus id, laoreet a elit. Donec fringilla turpis id accumsan fermentum.<br>
<a href=""www.cliens.com/en/embedded-vision/cliens-sensor-modules/"">Morbi ultricies egestas commodo </a>
<br>
<p><a href=""https://support.cliens.com/en/support/solutions/48000450070"" target=""_blank""><img id=""tinymce-editor-image-8a100d4d-0c23-4a95-9a21-3c8d10050ce8"" class=""tinymce-editor-image tinymce-editor-image-8a100d4d-0c23-4a95-9a21-3c8d10050ce8"" src=""https://cliens.com/media/image/a2/8d/42/Fusce_blandit_consectetur_mattis.png"" Fusce_blandit_consectetur_mattis"" data-src=""media/image/Fusce_blandit_consectetur_mattis.png"" /></a></p>
"
更新:
我既不能不通过在 Sublime-Text 或 Google 电子表格(然后导出)中复制粘贴保存它来保存为 text/html
。他们也保存为text/html
。也许它与 LibreOfficeCalc 的关系并没有我想象的那么大。
【问题讨论】:
如您所写(“更新...”),“MIME 类型”信息并未与您的文件一起保存;它取决于文件内容(在 MIME 嗅探的情况下)或系统首选项。因此,您可以尝试识别“罪魁祸首内容”(例如,是否可以重命名描述列?是否可以转义 HTML 内容?)并相应地修改 csv 内容。或者,您可以尝试说服 WordPress 将 csv 处理为 csv,但恕我直言,这是题外话;此外,一个正确的问题需要一些示例 csv 内容用于测试目的。 【参考方案1】:鉴于——无论出于何种原因——我可以将大文件保存为 text/plain
,只要我不删除任何行,并且我只想更新现有产品,我可以通过使不导入的行不可导入:我将 ID 更改为不存在的 ID。
我希望这段奇怪旅程的记录有一天能对任何人有所帮助。
【讨论】:
【参考方案2】:解决此问题的另一种方法是在具有 HTML 标记的列之前创建一个新列,并为每个单元格填充显式没有 HTML 标记的 random blindcopy text;非常非常长的文本,如有必要。
我想,如果没有这种解决方法,其他单元格的内容太短,无法使其中包含 HTML 的一列不支配文件。
【讨论】:
以上是关于如何防止 LibreOffice Calc 将 CSV 保存为 text/html?的主要内容,如果未能解决你的问题,请参考以下文章
LibreOffice Calc / OpenOffice Calc / Excel:如何显示负持续时间?
如何通过 LibreOffice 的 Calc 中的正则表达式语句捕获公司名称
Libreoffice calc - 如何将相同的值写入范围