如何将Excel文件转换为CSV并防止UTF-8编码

时间:2014-06-10 05:41:56

标签: python excel csv utf-8

我有5个Excel文件,必须编译成一个csv文件,可以上传到我们的附属商店数据库的网站。到目前为止,我们已经有人手动剪切并将每个文件的行粘贴到Excel中的一个主csv文件中,然后将该文件上传到网站。

我一直在尝试使用Python来整合文件,因此用户只需运行可以为她执行此操作的Python脚本。问题是Excel文件是用Shift-JIS编码的,当我在Python中使用CSV编写器时,它们会被转换为UTF-8。我们上传它们的网站只接受Shift-JIS中的文件,因此我必须将所有这些数据保存在Shift-JIS中。

由于DOS自动默认为ascii编码,我首先要运行它:

import codecs, sys, xlrd, csv
reload(sys)
sys.setdefaultencoding('shift_jis')

以下是其中一个Excel文件的代码示例,其中包含2个单独工作表的数据:

with xlrd.open_workbook('Circle.xls') as wb:
   for sheet in wb.sheets():
     fn = 'store-'
     print "Converting files.."
     with open(fn + sheet.name + ".csv","wb") as f:
       c = csv.writer(f,dialect="excel")
       for r in range(sheet.nrows):
          c.writerow(sheet.row_values(r))

转换运行直到找到shift-JIS中不存在的UTF-8字符,然后出错。

有没有办法从Excel转换为纯粹在shift-JIS中的csv?

(如果我的问题存在缺陷,请在标记之前让我编辑它!我会编辑它!)

0 个答案:

没有答案