Productivity
Excel Processing (XLSX)
Create and manipulate Microsoft Excel spreadsheets programmatically. Use when users need to generate, edit, or convert Excel files.
Create and manipulate Microsoft Excel spreadsheets programmatically. Use when users need to generate, edit, or convert Excel files.
Create and manipulate Microsoft Excel spreadsheets programmatically.
pip install openpyxl
import openpyxl
# Create workbook
wb = openpyxl.Workbook()
ws = wb.active
# Add data
ws['A1'] = 'Hello'
ws['B1'] = 'World'
# Save
wb.save('spreadsheet.xlsx')
import openpyxl
wb = openpyxl.Workbook()
# Create new sheet
ws = wb.create_sheet('Data')
# Access sheet
ws = wb['Data']
# List all sheets
print(wb.sheetnames)
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
# Set values
ws['A1'] = 'Name'
ws['B1'] = 'Value'
# Access values
name = ws['A1'].value
print(name) # Output: Name
# Iterate over cells
for row in ws.iter_rows(min_row=1, max_row=5, min_col=1, max_col=2):
for cell in row:
print(cell.value)
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
# Single cell
ws['A1'] = 'Hello'
# Multiple cells
data = [
['Name', 'Age', 'City'],
['John', 25, 'New York'],
['Jane', 30, 'London'],
['Bob', 35, 'Paris'],
]
for row in data:
ws.append(row)
wb.save('data.xlsx')
import openpyxl
wb = openpyxl.load_workbook('data.xlsx')
ws = wb.active
# Read specific cell
value = ws['A1'].value
# Read range
for row in ws.iter_rows(min_row=1, max_row=5, values_only=True):
print(row)
# Read all data
data = ws.values
for row in data:
print(row)
import openpyxl
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
wb = openpyxl.Workbook()
ws = wb.active
# Font
ws['A1'].font = Font(
name='Arial',
size=12,
bold=True,
color='FF0000'
)
# Fill
ws['A1'].fill = PatternFill(
start_color='FFFF00',
end_color='FFFF00',
fill_type='solid'
)
# Alignment
ws['A1'].alignment = Alignment(
horizontal='center',
vertical='center'
)
# Border
thin_border = Border(
left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin')
)
ws['A1'].border = thin_border
# Set column width
ws.column_dimensions['A'].width = 20
ws.column_dimensions['B'].width = 15
# Set row height
ws.row_dimensions[1].height = 30
import openpyxl
from openpyxl.chart import BarChart, Reference
wb = openpyxl.Workbook()
ws = wb.active
# Add data
data = [
['Product', 'Q1', 'Q2', 'Q3', 'Q4'],
['Widget A', 100, 150, 200, 250],
['Widget B', 200, 180, 220, 280],
['Widget C', 150, 160, 190, 210],
]
for row in data:
ws.append(row)
# Create chart
chart = BarChart()
chart.title = "Sales by Quarter"
chart.y_axis.title = "Sales"
chart.x_axis.title = "Product"
# Reference data
data = Reference(ws, min_col=2, min_row=1, max_col=5, max_row=4)
cats = Reference(ws, min_col=1, min_row=2, max_row=4)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
ws.add_chart(chart, "A8")
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
# Add data
ws['A1'] = 10
ws['A2'] = 20
ws['A3'] = 30
# Add formula
ws['A4'] = '=SUM(A1:A3)'
# Other formulas
ws['B1'] = '=AVERAGE(A1:A3)'
ws['B2'] = '=MAX(A1:A3)'
ws['B3'] = '=MIN(A1:A3)'
import openpyxl
from openpyxl.worksheet.datavalidation import DataValidation
wb = openpyxl.Workbook()
ws = wb.active
# Create validation
dv = DataValidation(
type="list",
formula1='"Option1,Option2,Option3"',
allow_blank=True
)
# Add validation to cells
ws.add_data_validation(dv)
dv.add('A1:A10')