我有一个包含一些西班牙语字符(波浪号等)的Excel文件,我需要将其转换为CSV文件以用作导入文件。 但是,当我执行“另存为CSV”时,它会处理不是ASCII字符的“特殊”西班牙字符。 这似乎也用左引号和右引号以及长破折号来完成,这些引号似乎来自在Mac中创建Excel文件的原始用户。

由于CSV只是一个文本文件,因此我确定它可以处理UTF8编码,因此我猜测它是Excel的局限性,但是我正在寻找一种方法,以将Excel转换为CSV并保留非ASCII字符完整。


#1楼

“ nevets1219”与Google文档有关,但是,如果您仅“导入”文件,则该文件通常不会将其转换为UTF-8。

但是,如果将CSV导入到现有的Google电子表格中,则确实会转换为UTF-8。

这是一个食谱:

  • 在主文档(或云端硬盘)屏幕上,点击“创建”按钮,然后选择“电子表格”
  • 从“文件”菜单中选择“导入”
  • 点击“选择文件”
  • 选择“替换电子表格”
  • 选择要用作分隔符的任何字符
  • 点击“导入”
  • 从“文件”菜单中选择“下载为”-> CSV(当前工作表)

生成的文件将为UTF-8


#2楼

编码->转换为Ansi将以ANSI / UNICODE对其进行编码。 Utf8是Unicode的子集。 也许在ANSI中会正确编码,但是在这里我们谈论的是UTF8 @SequenceDigitale。

有更快的方法,例如导出为csv(以逗号分隔),然后用Notepad ++(免费)打开该csv,然后编码>转换为UTF8。 但仅在每个文件必须执行一次时。 如果您需要经常更改和导出,那么最好的方法是LibreOffice或GDocs解决方案。


#3楼

您可以在Unix下使用iconv命令(在Windows上也可以使用libiconv )。

在Excel中在命令行下另存为CSV后,放置:

iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv

(请记住用您的编码替换cp1250)。

对于大型文件(例如邮政编码数据库)无法快速导入到GoogleDocs(限制为400.000个单元格),效果非常好。


#4楼

假设是Windows环境,请照常在Excel中保存并使用该文件,然后在Gnome Gnumeric(免费)中打开保存的Excel文件。 将Gnome Gnumeric的电子表格另存为CSV,无论如何对我来说,都将其另存为UTF-8 CSV。


#5楼

Microsoft Excel提供了使用Unicode编码导出电子表格的选项。 请参阅以下屏幕截图。


#6楼

用记事本++打开.csv。 如果您认为编码良好(可以看到所有字符,应该按一下),请按encoding,然后转换为ANSI-找出当前的编码是什么


#7楼

我知道这是一个古老的问题,但是我碰巧遇到了这个问题,却遇到了与OP相同的问题。

尚未找到任何提供的解决方案的可行选择,我着手发现是否有一种方法可以仅使用Excel。

幸运的是,我发现丢失字符问题仅在从xlsx格式保存为csv格式时发生(就我而言)。 我尝试先将xlsx文件保存到xls,然后再保存到csv。 它确实有效。

请尝试一下,看看它是否适合您。 祝好运。


#8楼

另一个解决方案是通过winword打开文件并将其另存为txt,然后通过excel重新打开它,它将可以运行ISA


#9楼

简单的方法:下载开放式办公室( here ),加载电子表格并打开excel文件( .xls.xlsx )。 然后将其另存为文本CSV文件,然后会打开一个窗口,要求保留当前格式或另存为.ODF格式。 选择“保留当前格式”,然后在新窗口中根据编写文件的语言选择最适合您的选项。 对于西班牙语,选择西欧( Windows-1252/ WinLatin 1 ),文件运行正常。 如果选择Unicode( UTF-8 ),它将无法使用西班牙字符。


#10楼

  1. 将xls文件(Excel文件)另存为Unicode文本=>文件将以文本格式(.txt)保存

  2. 将格式从.txt更改为.csv(将文件从XYX.txt重命名为XYX.csv


#11楼

  1. 将Excel工作表另存为“ Unicode文本(.txt)”。 好消息是,所有国际字符都使用UTF16(注意,不是UTF8)。 但是,新的“ * .txt”文件由TAB分隔,而不是逗号分隔,因此不是真正的CSV。

  2. (可选)除非可以使用TAB分隔文件进行导入,否则请使用您喜欢的文本编辑器并将TAB字符替换为逗号“,”。

  3. 将* .txt文件导入目标应用程序。 确保它可以接受UTF16格式。

如果已正确实现UTF-16并支持非BMP代码点,则可以将UTF-16文件转换为UTF-8而不会丢失信息。 我将其留给您,以找到您最喜欢的方法。

我使用此过程将数据从Excel导入Moodle。


#12楼

对于那些寻求完全编程(至少是服务器端)解决方案的用户,我在使用catdoc的xls2csv工具方面取得了巨大的成功。

安装catdoc:

apt-get install catdoc

做转换:

xls2csv -d utf-8 file.xls > file-utf-8.csv

速度很快。

请注意,包括-d utf-8标志非常重要,否则它将以默认的cp1252编码对输出进行编码,并且存在丢失信息的风险。

请注意, xls2csv也仅适用于.xls文件,不适用于.xlsx文件。


#13楼

怎么样使用Powershell。

Get-Content 'C:\my.csv' | Out-File 'C:\my_utf8.csv' -Encoding UTF8

#14楼

尽管看起来很有趣,但我发现将180MB电子表格保存到UTF8 CSV文件中的最简单方法是将单元格选择到Excel中,将其复制并将其内容粘贴到SublimeText中。


#15楼

唯一的“简便方法”如下。 首先,意识到在Excel .csv文件中显示的内容和隐藏的内容之间存在差异。

  1. 打开一个包含您的信息的Excel文件(.xls,.xlsx)
  2. 在Excel中,选择“ CSV(逗号分隔)(*。csv)”作为文件类型并保存为该类型。
  3. 在NOTEPAD(位于“程序”下,然后在“开始”菜单中的附件下)中,在记事本中打开保存的.csv文件
  4. 然后选择->另存为...,在“另存为”框的底部,有一个标记为“编码”的选择框。 选择UTF-8(请勿使用ANSI,否则会丢失所有重音符号等)。 选择UTF-8后,将文件保存为与原始文件名稍有不同的文件名。

该文件采用UTF-8格式,并保留所有字符和重音符号,并且可以导入例如MySQL和其他数据库程序中。

这个答案来自这个论坛 。


#16楼

我有同样的问题,遇到了这个 add in,它在excel 2013和excel 2007和2010中都可以正常工作。


#17楼

保存对话框>工具按钮> Web选项>编码选项卡


#18楼

遇到了同样的问题,并用谷歌搜索了这篇文章。 以上都不对我有用。 最后,我将Unicode .xls转换为.xml(选择另存为... XML Spreadsheet 2003),并生成了正确的字符。 然后,我编写了代码以解析xml并提取了供我使用的内容。


#19楼

我写了一个小的Python脚本,可以用UTF-8导出工作表。

您只需要提供Excel文件作为第一个参数,然后是您要导出的图纸即可。 如果您不提供工作表,则脚本将导出Excel文件中存在的所有工作表。

#!/usr/bin/env python# export data sheets from xlsx to csvfrom openpyxl import load_workbook
import csv
from os import sysreload(sys)
sys.setdefaultencoding('utf-8')def get_all_sheets(excel_file):sheets = []workbook = load_workbook(excel_file,use_iterators=True,data_only=True)all_worksheets = workbook.get_sheet_names()for worksheet_name in all_worksheets:sheets.append(worksheet_name)return sheetsdef csv_from_excel(excel_file, sheets):workbook = load_workbook(excel_file,use_iterators=True,data_only=True)for worksheet_name in sheets:print("Export " + worksheet_name + " ...")try:worksheet = workbook.get_sheet_by_name(worksheet_name)except KeyError:print("Could not find " + worksheet_name)sys.exit(1)your_csv_file = open(''.join([worksheet_name,'.csv']), 'wb')wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)for row in worksheet.iter_rows():lrow = []for cell in row:lrow.append(cell.value)wr.writerow(lrow)print(" ... done")your_csv_file.close()if not 2 <= len(sys.argv) <= 3:print("Call with " + sys.argv[0] + " <xlxs file> [comma separated list of sheets to export]")sys.exit(1)
else:sheets = []if len(sys.argv) == 3:sheets = list(sys.argv[2].split(','))else:sheets = get_all_sheets(sys.argv[1])assert(sheets != None and len(sheets) > 0)csv_from_excel(sys.argv[1], sheets)

#20楼

您可以在没有第三方软件的现代Windows计算机上执行此操作。 此方法是可靠的,它将处理包含引号,引号,制表符,CJK字符等的数据。

1.从Excel保存

在Excel中,使用Unicode Text (*.txt)类型将数据保存到file.txt

2.启动PowerShell

从“开始”菜单运行powershell

3.在PowerShell中加载文件

$data = Import-Csv C:\path\to\file.txt -Delimiter "`t" -Encoding BigEndianUnicode

4.将数据另存为CSV

$data | Export-Csv file.csv -Encoding UTF8 -NoTypeInformation

#21楼

最简单的方法: 无需Open Office和Google文档

  1. 将文件另存为“ Unicode文本文件”;
  2. 现在你有一个Unicode文本文件
  3. 使用“记事本”将其打开,然后选择“ utf-8”或其他所需的代码页将其另存为
  4. 将文件扩展名从“ txt”重命名为“ csv”。 这将导致制表符分隔的UTF-8 csv文件。
  5. 如果要用逗号分隔的文件,请打开刚重命名的csv文件,然后用逗号替换所有选项卡。 要在Win 10上的记事本中执行此操作,只需选择一个选项卡字段,然后单击Ctrl+H 。 在打开的窗口中,在“替换为”字段中键入逗号,然后单击“全部替换”。 保存文件。 结果将是逗号分隔的UTF-8 csv文件。

无论如何不要用MS-Office打开它!!! 现在,您有了制表符分隔的CSV文件。 或者,如果您应用了步骤5,则以逗号分隔。


#22楼

我发现OpenOffice的电子表格应用程序Calc非常擅长处理CSV数据。

在“另存为...”对话框中,单击“格式选项”以获取CSV的不同编码。 LibreOffice的工作方式与AFAIK相同。


#23楼

一个简单的解决方法是使用Google Spreadsheet。 粘贴(仅在您具有复杂公式时才有值)或导入工作表,然后下载CSV。 我只是尝试了几个字符,所以效果很好。

注意:导入时,Google表格确实有限制。 看这里 。

注意:请小心使用Google表格的敏感数据。

编辑: 另一种选择 -基本上,他们使用VB宏或加载项强制将其另存为UTF8。 我没有尝试过这些解决方案中的任何一种,但是听起来很合理。


#24楼

在Excel 2016及更高版本(包括Office 365)下,有一个专用于UTF-8格式的CSV选项。

在Office 365中,另存为; 以前可能选择了CSV(逗号分隔),现在可以保存为CSV UTF-8(逗号分隔)(*。csv)的文件类型之一


#25楼

Excel通常将csv文件保存为ANSI编码而不是utf8。

纠正文件的一种方法是使用记事本或记事本++:

  1. 使用记事本或记事本++打开.csv。
  2. 将内容复制到计算机剪贴板。
  3. 从文件中删除内容。
  4. 将该文件的编码更改为utf8。
  5. 将内容从剪贴板粘贴回去。
  6. 保存文件。

#26楼

我也遇到过同样的问题,但是有一个简单的解决方案。

  1. 在Excel 2016或更高版本中打开您的xlsx文件。
  2. 在“另存为”中选择此选项:“((CSV UTF-8(逗号分隔)*。csv)”

它工作完美,并生成了一个csv文件,可以将其导入任何软件中。 我将此csv文件导入到我的SQLITE数据库中,它与所有Unicode字符完好无缺地完美结合。


#27楼

“ nevets1219”的第二个选项是在Notepad ++中打开CSV文件并转换为ANSI。

在顶部菜单中选择:编码->转换为Ansi


#28楼

使用记事本++

这将修复Excel保存的损坏的CSV文件,并以正确的编码重新保存它。

  • 从Excel导出CSV
  • 载入记事本++
  • 修正编码

Excel保存在CP-1252 / Windows-1252中。 在记事本++中打开CSV文件。 选择

Encoding > Character Sets > Western European > Windows-1252

然后

Encoding > Convert to UTF-8
File > Save

首先告诉Notepad ++编码, 然后进行转换。 这些其他答案中的一些正在转换而未先设置正确的编码,从而使文件更加混乱。 他们会变成应该是什么' 。 如果您的角色不适合CP-1252,则将其另存为CSV时已丢失。 为此使用另一个答案。


#29楼

我发现另一个有用:“ 数字 ”在另存为CSV时允许进行编码设置。


#30楼

我无法在Mac Excel上找到针对此问题的VBA解决方案。 似乎根本没有办法输出UTF-8文本。

所以我最终不得不放弃VBA,硬着头皮学习了AppleScript。 并没有我想的那么糟。

解决方案的说明如下: http : //talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html

使用UTF8编码将Excel转换为CSV相关推荐

  1. 如何用python把xlsx变为csv_python将excel转换为csv的代码方法总结

    import pandas as pd data = pd.read_excel('123.xls','Sheet1',index_col=0) data.to_csv('data.csv',enco ...

  2. Spire.XLS使用教程:在Java中将 Excel 转换为 CSV或将CSV转换为Excel

    Spire.XLS for Java是专业的Java Excel API,使开发人员无需使用Microsoft Office或Microsoft Excel即可创建,管理,操作,转换和打印Excel工 ...

  3. python excel转csv_python将excel转换为csv的代码方法总结

    #!/usr/bin/env python __author__ = "lrtao2010" ''' Excel文件转csv文件脚本 需要将该脚本直接放到要转换的Excel文件同级 ...

  4. 解决utf8编码的php生成csv打开乱码的问题

    解决utf8编码的php生成csv打开乱码的问题 参考文章: (1)解决utf8编码的php生成csv打开乱码的问题 (2)https://www.cnblogs.com/Crius/p/115586 ...

  5. csv转为utf8编码_中文的csv文件的编码改成utf8的方法

    直奔主题:把包含中文的csv文件的编码改成utf-8的方法: 啰嗦几句: 在用pandas读取hive导出的csv文件时,经常会遇到类似UnicodeDecodeError: 'gbk' codec ...

  6. Erlang转JAVA,将Erlang UTF-8编码的字符串转换为java.lang.String

    Java节点接收以UTF-8编码的Erlang字符串.它的类类型是OtpErlangString.如果我只是执行.toString()或.stringValue(),则生成的java.lang.Str ...

  7. VC实现EXCEL转换为CSV格式

    /************************************************************************  *函数名称:ConverXLSToCSV  *功能 ...

  8. Qt之将excel转换为csv

    直接上代码,注释都有 bool MainWindow::ExcelToCsvFile(const QString &excelFileName, const QString &csvF ...

  9. vbs 转码 gb2312转换为UTF-8编码的函数

    <% 1.'UTF转GB---将UTF8编码文字转换为GB编码文字 function UTF2GB(UTFStr) for Dig=1 to len(UTFStr)   '如果UTF8编码文字以 ...

最新文章

  1. 2022-2028年中国车载天线行业市场前瞻与投资战略规划分析报告
  2. 数据库开发基本操作-关于sql server 2005 未开放1433端口的问题
  3. ---Pcie基本概念普及(扫盲篇--巨适合新手)
  4. 坦克大战java_清华毕业大佬用一个坦克大战项目讲完了23种设计模式
  5. android联系人源码分析,android 联系人源码分析 新字段的添加流程
  6. centos7 ftp服务器搭建_CentOS7下搭建Jellyfin个人流媒体服务器
  7. 印尼商品期货交易监管局考虑对加密货币交易征税
  8. 976. 三角形的最大周长
  9. iOS开发之NSURLSession/NSURLConnection HTTP load failed 的解决办法
  10. Linux文件浏览命令
  11. GIS+区块链,地理空间数据新型应用场景未来可期
  12. ftl文件模板图片_JAVAWEB使用FreeMarker利用ftl把含有图片的word模板生成word文档,然后打包成压缩包进行下载...
  13. APP微信小程序测试一览表(常规用例)
  14. 极域课堂管理系统软件如何取消控制_《亲子沟通,调节孩子开学情绪》——烟洲小学家长课堂系列活动...
  15. SCI缩略词如何定义
  16. 龙卷风“掀翻”亚拉巴马州 至少19人死亡
  17. python爬高德地图_【爬虫】Java关于高德地图爬取数据
  18. 手机里android文件里哪些文件可删除,手机文件夹哪些可以删除?这4个删除它妥妥的...
  19. 继电器——电磁式继电器
  20. 每日加瓦,终成栋房6-展望未来(SpringBoot)

热门文章

  1. VMware Workstation之MacOS系统安装
  2. CNN系列学习之VGG16
  3. 艾肯Cube 4Nano MicU声卡等型号安装调试教程
  4. 斗鱼html5插件不可用,斗鱼html5插件
  5. android实现下载功能实现,Android开发之DownloadManager的使用
  6. 用友试水NC租用服务
  7. HTML中打开新页面的方法
  8. Android异常解决--A WebView method was called on thread 'JavaBridge'. All WebView methods must be called
  9. JDK1.7和JDK1.8 的区别
  10. 基于abp vnext手动编写一个功能的完整步骤