【问题标题】:Excel (XLS) to CSV with UTF-8使用 UTF-8 将 Excel (XLS) 转换为 CSV
【发布时间】:2012-11-24 14:19:54
【问题描述】:

我已阅读 the following advice 通过 Google Docs 将 UTF-8 编码(希伯来语)XLS 转换为 CSV,并且它有效。当我使用 UTF8 编码在 Sublime2 中打开 CSV 时,希伯来语显示正确。但是,当我尝试使用 SQLyog 将数据导入我的数据库时,在确保我的目标表和导入定义都设置为 UTF8 之后,我得到了乱码,比如:×ž×“×¨×©×•× ª 我哪里做错了?

【问题讨论】:

    标签: sql xls converters


    【解决方案1】:

    从 excel 导出到 csv 的最佳方法是:

    1. 打开excel文件并点击“另存为...”
    2. 插入名称,然后在“另存为文件类型”中选择“CSV(逗号分隔)”
    3. 然后,点击“工具”并选择“网络选项”

    4. 转到“编码”,在“将此文档另存为”选项下选择“Unicode (UTF-8)”。

    列表!我无法留下答案in the proper question : (

    找到原帖> eHow(spanish)

    一些图片。

    【讨论】:

    • 我在使用这种方法导出为 UTF-8 时仍然遇到问题,最后我不得不使用 LibreOffice Calc。使用这种方法导出后,编码确实被其他软件识别为UTF-8,但字符混乱。用 LO Calc 代替也没问题。
    【解决方案2】:
    1. 在 Microsoft Excel 中,打开 *.xlsx 文件。
    2. 选择菜单 |另存为。
    3. 为您的文件输入任意名称。
    4. 在“保存类型”下,选择 Unicode 文本。
    5. 点击保存。
    6. 在 Microsoft 记事本中打开您保存的文件。
    7. 用逗号 (",") 替换所有制表符。 选择一个制表符(选择并复制两个列标题之间的空格) 打开“查找和替换”窗口(按 Ctrl+H)并用逗号替换所有制表符。
    8. 点击另存为。
    9. 为文件命名,并将编码:更改为 UTF-8。
      1. 将文件扩展名从“.txt”更改为“.csv”。
      2. 点击保存。
      3. 在 Excel 中打开 .csv 文件以查看您的数据。

    来源:https://help.salesforce.com/articleView?id=000003837&type=1

    【讨论】:

      【解决方案3】:

      出于开发目的,我需要定期更改Excel 文件并生成一个“CSV”文件,该文件是一个文本文件,其中列的元素由TAB 字符分隔。

      为了方便我的工作,我创建了以下 VBS 脚本

      '***********************************************************************
      '* file: SaveAs.CSV.bat
      '***********************************************************************
      
      sInputFile = Wscript.Arguments(0)
      WScript.Echo "Excel input file: " & sInputFile
      
      Set ex = CreateObject("Excel.Application")
      Set wb = ex.Workbooks.Open(sInputFile)
      
      ex.Application.DisplayAlerts = False
      
      'https://docs.microsoft.com/en-us/office/vba/api/office.msoencoding
      
      wb.WebOptions.Encoding = 28591
      ex.Application.DefaultWebOptions.Encoding = 28591
      
      'https://docs.microsoft.com/en-us/office/vba/api/excel.xlfileformat
      
      sOutputFile = Replace(sInputFile & "*",".xlsx*",".txt")
      
      ex.Worksheets(1).SaveAs sOutputFile, 20
      ex.ActiveWorkbook.Close
      
      ex.Application.Quit
      
      WScript.Echo "CSV file has been created."
      WScript.Quit
      

      要开始为特定的 XLSX 文件创建“CSV”文件,我创建了以下 BAT 文件

      cscript SaveAs.CSV.vbs "D:\Documents\+Informatique\Application\@Visual Basic.NET\DrawPlanUnifilaire\Plan-Unifilaire.xlsx"
      pause
      

      所以,我只单击 BAT 文件,然后从 XLSX 文件的第一张表中自动生成一个 TXT 制表符分隔文件。

      XLSX 文件 (éèàüäù) 中包含的 UNICODE UTF8 字符已正确转换为 Windows ANSI 字符。

      【讨论】:

        【解决方案4】:

        我想出的解决方案是使用 RegExp 跳过从 CSV 到 SQL 的转换。比如:

        查找:"(.*)","(.*)","(.*)","(.*)","(.*)","(.*)","(.*)","(.*)","(.*)","(.*)" 替换:INSERT INTO aminadav VALUES (NULL,$1,"$2",$3,"$4","$5","$6","$7","$8","$9","$10");

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-02-10
          • 2011-12-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-21
          相关资源
          最近更新 更多