博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python——提取excel指定单元格的数据到txt中
阅读量:6454 次
发布时间:2019-06-23

本文共 2942 字,大约阅读时间需要 9 分钟。

2.将excel中指定单元格的数据提取并存储到txt文件中
(1)使用openpyxl的load_workbook模块
        问题:load_workbook只能使用.xlsx文件,不能打开.xls文件。而xlrd可以打开.xlsx文件
        .xlsx使用于2003版以上的excel文件;
        .xls适用于2003以下的excel文件。
        对xlrd模块的介绍( )
(2)存储为txt文档时的三种方式
            读模式('r')、写模式('w')、追加模式('a')
(3)正确创建一个list
            col1 = []、col1 = [0]*22
(4)对excel中单元格的操作方式        
for index,item in enumerate(sh["C2":"X2"]):j = 0    if index > 0:        print("\n")for i in item:    print(i.value,end=" ")    col1[j] = i.value    j = j+1

(5)python保留小数点后四位数字的三种方法  

1  print(Decimal('cell.value').quantize(Decimal('0.0000')),end=" ") #使用decimal函数将小数点后保留四位2  print('%.4f' %cell.value,end=" ") #小数点后保留四位 3  round(cell.value,4) #小数点后保留四位

(6)

TypeError: 'int' object is not iterable

经过多次查询,最终找到原因:不能直接用int进行迭代,而必须加个range。int不能使用迭代器函数iter( )    

1  错误:n=22;for i in n:2  正确:n=22;  for i in range(n):

(7)

ValueError : I/O operation on closed file. #在关闭的文件中进行I/O处理

问题:python的严格缩进,强制可读性   

1 错误: 2 with open("C:\Users\Desktop\matlab\1026\traindata1.txt","a+") as wr: 3 for j in range(n): 4         print(str(col1[j])+','+str(col2[j])+';') 5         wr.write(str(col1[j])+','+str(col2[j])+';') 6 正确: 7 with open("C:\Users\Desktop\matlab\1026\traindata1.txt","a+") as wr: 8         for j in range(n): 9                 print(str(col1[j])+','+str(col2[j])+';')10                 wr.write(str(col1[j])+','+str(col2[j])+';')

(8)

1 TypeError: unsupported operand type(s) for +: 'str' and 'int'2         问题:3         错误: wr.write(col1[j]+','+col2[j]+';')4         正确: wr.write(str(col1[j])+','+str(col2[j])+';')

 

(9)
IndexError: list assignment index out of range        问题:刚开始时定义list范围过小,定义的l是一个空list,之后却要引用一个l[j]        错误:l = [0]; l[j] = i.value        正确:l = [0]*22; l[i] = i.value;

 

 
 
python代码:
1 from openpyxl import load_workbook 2 from decimal import * 3 import xlrd 4  5 #df = xlrd.open_workbook(r"桌面\1.xlsx") #python中的‘\’表示转义字符,可在前面加上r或者使用‘/’ 6 wb = load_workbook(r"C:\Users\Desktop\matlab\b.xlsx") 7 sh = wb["b"] 8 with open("C:\Users\Desktop\matlab\traindata1.txt","a+") as wr: 9 #names = df.sheet_names() #获取Sheet列表名,xlrd模块中专用10 #print(names)11 12     col1 = [0] *2213     col2 = [0] *22 #创建一个大小为22的list,python中list相当于数组14     n=2215 16     for index,item in enumerate(sh["C2":"X2"]):17         j = 018         if index > 0:19             print("\n")20         for i in item:21             print(i.value,end=" ")22             col1[j] = i.value 23             j = j+124     for index,item in enumerate(sh["C5":"X5"]):25         j = 026         if index >0:27             print("\n")28         for cell in item:29             #print(Decimal('cell.value').quantize(Decimal('0.0000')),end=" ") #使用decimal函数将小数点后保留四位30             print('%.4f' %cell.value,end=" ") #小数点后保留四位    31             col2[j] = round(cell.value,4) #小数点后保留四位 32             j = j+133       34         j = 035     for j in range(n):36         print(str(col1[j])+','+str(col2[j])+';')37         wr.write(str(col1[j])+','+str(col2[j])+';')

 

转载于:https://www.cnblogs.com/zx-zhang/p/9942640.html

你可能感兴趣的文章
IOS 与ANDROID框架及应用开发模式对比一
查看>>
由中序遍历和后序遍历求前序遍历
查看>>
JQUERY Uploadify 3.1 C#使用案例
查看>>
coursera 北京大学 程序设计与算法 专项课程 完美覆盖
查看>>
firewall 端口转发
查看>>
wndows make images
查看>>
FS系统开发设计(思维导图)
查看>>
我学习参考的网址
查看>>
DEDE自带的采集功能,标题太短的解决方法
查看>>
easyui的combotree以及tree,c#后台异步加载的详细介绍
查看>>
1、串(字符串)以及串的模式匹配算法
查看>>
[Processing]点到线段的最小距离
查看>>
考研随笔2
查看>>
ubuntu Linux 操作系统安装与配置
查看>>
操作系统os常识
查看>>
乱码的情况
查看>>
虚拟机centos 同一个tomcat、不同端口访问不同的项目
查看>>
在不花一分钱的情况下,如何验证你的创业想法是否可行?《转》
查看>>
Linux/Android 性能优化工具 perf
查看>>
learn go recursive
查看>>