我有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?
(如果我的问题存在缺陷,请在标记之前让我编辑它!我会编辑它!)