I am new to openpyxl, just started yesterday. I need to extract the data from the excel file from my local storage that excel file have 500+ rows and 50+ columns. I want to extract some specific cells or columns or rows into the .txt and .csv file.
I cannot find where is the mistake what to add in this code
from openpyxl import *
import os
path = 'F:\\mis'
files = [i for i in os.listdir(path) if i.endswith('.xlsx')]
for f in files:
wb = load_workbook(os.path.join(path, f))
for row in wb['newxl.xlsx'].rows:
with open(row[2].value+'.txt', 'w') as outfile:
outfile.write(row[0].value)```
UPDATED ANSWER
import openpyxl
import csv
roster = openpyxl.load_workbook('roster.xlsx')
sheet = roster.active
col = csv.writer(open("new_roster.csv",'w',newline=""))
st_id = int(input("Enter student ID: "))
for row in sheet.rows:
if row[0].value == st_id:
col.writerow([cell.value for cell in row])
print("File created!")
UPDATE 2
This is how you can get the values from a specific column:
import openpyxl
roster = openpyxl.load_workbook('roster.xlsx')
sheet = roster.active
col = sheet['B']
for x in range(len(col)):
print(col[x].value)
UPDATE 3
Return specific values from column:
import openpyxl
roster = openpyxl.load_workbook('roster.xlsx')
sheet = roster.active
col = sheet['B'] # <-- change the column according to your file
val = input("Enter value: ")
for c in range(len(col)):
if val == col[c].value:
print(f'Found {col[c].value}!')