From 83a703d2cf3ebab2d654c70b56138a357c03377b Mon Sep 17 00:00:00 2001 From: medusa Date: Thu, 28 Mar 2024 17:59:29 +0000 Subject: [PATCH] Add docs/tech_docs/python/openpyxl.md --- docs/tech_docs/python/openpyxl.md | 141 ++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 docs/tech_docs/python/openpyxl.md diff --git a/docs/tech_docs/python/openpyxl.md b/docs/tech_docs/python/openpyxl.md new file mode 100644 index 0000000..e1f1e5c --- /dev/null +++ b/docs/tech_docs/python/openpyxl.md @@ -0,0 +1,141 @@ +For working with Excel documents using Python, the `openpyxl` library is a popular choice. It allows you to read and write Excel 2010 xlsx/xlsm/xltx/xltm files, providing capabilities to create new worksheets, change cell values, apply styles, and much more. Below is a concise reference guide for common use cases with `openpyxl`, formatted in Markdown syntax: + +# `openpyxl` Reference Guide + +## Installation +``` +pip install openpyxl +``` + +## Creating and Saving Workbooks +```python +from openpyxl import Workbook + +# Create a new workbook +wb = Workbook() + +# Save the workbook +wb.save('path_to_file.xlsx') +``` + +## Opening Existing Workbooks +```python +from openpyxl import load_workbook + +# Load an existing workbook +wb = load_workbook('path_to_existing_file.xlsx') +``` + +## Working with Sheets +```python +# Create a new sheet +ws1 = wb.create_sheet(title="Sheet1") + +# Select a sheet +ws2 = wb["Sheet1"] + +# List all sheet names +sheets = wb.sheetnames + +# Remove a sheet +del wb["Sheet1"] +``` + +## Writing to Cells +```python +# Select a cell +cell = ws1['A1'] + +# Assign a value to the cell +ws1['A1'] = 'Hello' +ws1.cell(row=2, column=2, value="World") + +# Iterate over rows and columns +for row in range(1, 5): + for col in range(1, 3): + ws1.cell(row=row, column=col, value=f'Row {row}, Col {col}') +``` + +## Reading from Cells +```python +# Read a cell's value +value = ws1['A1'].value + +# Iterate over rows and columns +for row in ws1.iter_rows(min_row=1, max_col=2, max_row=2): + for cell in row: + print(cell.value) +``` + +## Applying Styles +```python +from openpyxl.styles import Font, Color, Alignment, Border, Side + +# Create a font style +font = Font(name='Calibri', size=12, bold=True, italic=False, color="FF0000") + +# Apply the font to a cell +ws1['A1'].font = font + +# Create and apply border style +border = Border(left=Side(border_style="thin", color="000000"), + right=Side(border_style="thin", color="000000"), + top=Side(border_style="thin", color="000000"), + bottom=Side(border_style="thin", color="000000")) +ws1['A1'].border = border + +# Apply alignment +alignment = Alignment(horizontal="center", vertical="center") +ws1['A1'].alignment = alignment +``` + +## Formulas +```python +# Assign a formula to a cell +ws1['A3'] = '=SUM(A1:A2)' +``` + +## Adding Charts +```python +from openpyxl.chart import BarChart, Reference + +# Create data for the chart +for i in range(10): + ws1.append([i]) + +# Create a bar chart +chart = BarChart() +data = Reference(ws1, min_col=1, min_row=1, max_col=1, max_row=10) +chart.add_data(data, titles_from_data=True) + +# Add the chart to the sheet +ws1.add_chart(chart, "E5") +``` + +## Working with Rows and Columns +```python +# Insert a row at the second position +ws1.insert_rows(2) + +# Delete the third row +ws1.delete_rows(3) + +# Insert a column +ws1.insert_cols(2) + +# Delete a column +ws1.delete_cols(3) + +# Set row height +ws1.row_dimensions[1].height = 20 + +# Set column width +ws1.column_dimensions['A'].width = 30 +``` + +## Save Changes +```python +wb.save('path_to_file.xlsx') +``` + +This guide covers the basics of creating and manipulating Excel files with `openpyxl`, including operations on workbooks and worksheets, cell manipulation, applying styles, and adding charts. These capabilities allow for robust Excel document generation and editing directly from Python scripts. \ No newline at end of file