我有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?

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