Python-excel指定セルのデータをtxtに抽出

14611 ワード

2.excelで指定したセルのデータをtxtファイルに抽出して格納する
(1)Openpyxlを使用したload_workbookモジュール
        質問:load_workbookは.xlsxファイルしか使用できません..xlsファイルを開くことはできません.xlrdは.xlsxファイルを開くことができます
        .xlsxは2003版以上のexcelファイルで使用されています.
        .xlsは2003以下のexcelファイルに適用されます.
        xlrdモジュールの紹介(https://www.cnblogs.com/insane-Mr-Li/p/9092619.html)
(2)txt文書として格納する場合の3つの方式
           
リードモード('r')、ライトモード('w')、追加モード('a')
(3)リストを正しく作成する
            col1 = []、col1 = [0]*22
(4)excel内のセルの操作方法        
for index,item in enumerate(sh["C2":"X2"]):
j = 0
    if index > 0:
        print("
") for i in item: print(i.value,end=" ") col1[j] = i.value j = j+1

(5)python小数点以下の4桁の数字を保持する3つの方法 
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] *22
13     col2 = [0] *22 #       22 list,python list     
14     n=22
15 
16     for index,item in enumerate(sh["C2":"X2"]):
17         j = 0
18         if index > 0:
19             print("
") 20 for i in item: 21 print(i.value,end=" ") 22 col1[j] = i.value 23 j = j+1 24 for index,item in enumerate(sh["C5":"X5"]): 25 j = 0 26 if index >0: 27 print("
") 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+1 33 34 j = 0 35 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