鱼C论坛

 找回密码
 立即注册
查看: 2283|回复: 2

将excel中每一行数据分别写入一个txt

[复制链接]
发表于 2017-6-20 16:10:09 | 显示全部楼层 |阅读模式
15鱼币
本帖最后由 哲子DZ 于 2017-6-20 16:11 编辑

需求是这样的,excel中的每一行数据分别写入到一个txt文档,也就是说如果表里有10行数据,最后的就得到10个txt文本,每个文档是一行数据的内容,然后以每一行第一个单元格的数据为txt的文件名。自己写的程序如下,有个问题,就是生成的txt内容是叠加的,比如第3个文档会包含第1和第2个文档的内容,请各位不吝赐教,谢谢大家!!
import xlrd

fname = ('1.xlsx')
bk = xlrd.open_workbook(fname)
sh = bk.sheet_by_name('Sheet1')
nrows = sh.nrows
ncols = sh.ncols

data_list = []

for i in range(1, nrows):
    for j in range(0, ncols):
        data = str(sh.cell_value(i, j))
        data_list.append(data)

    
    filename = sh.cell_value(i, 0) + ".txt"
    f = open(filename ,'w+', encoding = 'utf-8')
    f.writelines(data_list)
    f.close()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-20 16:34:02 | 显示全部楼层
自己解决了,换了一下文件打开的位置,代码如下
import xlrd

fname = ('1.xlsx')
bk = xlrd.open_workbook(fname)
sh = bk.sheet_by_name('Sheet1')
nrows = sh.nrows
ncols = sh.ncols

data_list = []

for i in range(1, nrows):
    filename = sh.cell_value(i, 0) + ".txt"
    f = open(filename ,'w+', encoding = 'utf-8')

    for j in range(0, ncols):
        data = str(sh.cell_value(i, j))
        data_list.append(data)

    
        f.write(data)
    f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-20 16:35:15 | 显示全部楼层
import xlrd

fname = ('1.xlsx')
bk = xlrd.open_workbook(fname)
sh = bk.sheet_by_name('Sheet1')
nrows = sh.nrows
ncols = sh.ncols

data_list = []

for i in range(1, nrows):
    filename = sh.cell_value(i, 0) + ".txt"
    f = open(filename ,'w+', encoding = 'utf-8')

    for j in range(0, ncols):
        data = str(sh.cell_value(i, j))
        data_list.append(data)

    
        f.write(data)
    f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-19 09:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表