Excel基础操作详细文档01

Excel文件基本操作

1.1 创建新工作簿

手动操作:

  • 打开Excel → 文件 → 新建 → 空白工作簿
  • 快捷键:Ctrl + N

Python操作(使用openpyxl):

python 复制代码
from openpyxl import Workbook

# 创建新工作簿
wb = Workbook()
ws = wb.active
ws.title = "数据表"

# 保存文件
wb.save('新建工作簿.xlsx')

Python操作(使用pandas):

python 复制代码
import pandas as pd

# 创建DataFrame
df = pd.DataFrame({
    '姓名': ['张三', '李四', '王五'],
    '年龄': [25, 30, 28],
    '部门': ['销售', '技术', '市场']
})

# 保存为Excel文件
df.to_excel('新建工作簿.xlsx', index=False)

1.2 打开现有工作簿

手动操作:

  • 文件 → 打开 → 选择文件
  • 快捷键:Ctrl + O
  • 双击Excel文件直接打开

Python操作(使用openpyxl):

python 复制代码
from openpyxl import load_workbook

# 打开现有工作簿
wb = load_workbook('现有文件.xlsx')
ws = wb.active

# 读取数据
for row in ws.iter_rows(values_only=True):
    print(row)

Python操作(使用pandas):

python 复制代码
import pandas as pd

# 读取Excel文件
df = pd.read_excel('现有文件.xlsx')
print(df.head())

# 读取指定工作表
df = pd.read_excel('现有文件.xlsx', sheet_name='Sheet2')

# 读取多个工作表
excel_file = pd.ExcelFile('现有文件.xlsx')
df_dict = {sheet: excel_file.parse(sheet) for sheet in excel_file.sheet_names}

1.3 保存工作簿

手动操作:

  • 保存:Ctrl + S
  • 另存为:F12 或 文件 → 另存为
  • 保存为不同格式:选择文件类型(.xlsx, .xls, .csv等)

Python操作:

python 复制代码
from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 保存为.xlsx格式
wb.save('文件名.xlsx')

# 使用pandas保存为不同格式
import pandas as pd
df = pd.DataFrame({'列1': [1, 2, 3]})

# 保存为Excel
df.to_excel('文件.xlsx', index=False)

# 保存为CSV
df.to_csv('文件.csv', index=False, encoding='utf-8-sig')

# 保存多个工作表
with pd.ExcelWriter('多表文件.xlsx') as writer:
    df.to_excel(writer, sheet_name='表1', index=False)
    df.to_excel(writer, sheet_name='表2', index=False)

工作表管理

2.1 创建新工作表

手动操作:

  • 右键点击工作表标签 → 插入 → 工作表
  • 点击工作表标签旁的 + 按钮
  • 快捷键:Shift + F11

Python操作:

python 复制代码
from openpyxl import Workbook

wb = Workbook()

# 创建新工作表
ws1 = wb.create_sheet("数据表1")
ws2 = wb.create_sheet("数据表2", 0)  # 插入到第一个位置

# 设置工作表名称
ws1.title = "销售数据"

wb.save('多工作表.xlsx')

2.2 重命名工作表

手动操作:

  • 双击工作表标签
  • 右键点击工作表标签 → 重命名

Python操作:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')
ws = wb['Sheet1']

# 重命名工作表
ws.title = "新名称"

wb.save('文件.xlsx')

2.3 删除工作表

手动操作:

  • 右键点击工作表标签 → 删除

Python操作:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')

# 删除指定工作表
del wb['Sheet2']

# 或使用remove方法
ws = wb['Sheet3']
wb.remove(ws)

wb.save('文件.xlsx')

2.4 复制/移动工作表

手动操作:

  • 复制:右键工作表标签 → 移动或复制 → 勾选"建立副本"
  • 移动:拖动工作表标签到目标位置

Python操作:

python 复制代码
from openpyxl import load_workbook
from copy import copy

wb = load_workbook('文件.xlsx')

# 复制工作表
source = wb['Sheet1']
target = wb.copy_worksheet(source)
target.title = "Sheet1副本"

wb.save('文件.xlsx')

2.5 隐藏/显示工作表

手动操作:

  • 隐藏:右键工作表标签 → 隐藏
  • 显示:右键任意工作表标签 → 取消隐藏 → 选择要显示的工作表

Python操作:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')
ws = wb['Sheet1']

# 隐藏工作表
ws.sheet_state = 'hidden'

# 显示工作表
ws.sheet_state = 'visible'

wb.save('文件.xlsx')

单元格操作

3.1 选择单元格

手动操作:

  • 单个单元格:直接点击
  • 连续区域:点击起始单元格,按住Shift,点击结束单元格
  • 不连续区域:按住Ctrl,依次点击单元格
  • 整行:点击行号
  • 整列:点击列标
  • 全选:点击行列交叉处或 Ctrl + A

快捷键:

  • Ctrl + Home:跳转到A1单元格
  • Ctrl + End:跳转到最后使用的单元格
  • Ctrl + 方向键:跳转到数据区域边缘

3.2 访问单元格(Python)

使用openpyxl:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')
ws = wb.active

# 方法1:使用单元格坐标
cell = ws['A1']
print(cell.value)

# 方法2:使用行列索引(从1开始)
cell = ws.cell(row=1, column=1)
print(cell.value)

# 访问多个单元格
for row in ws['A1:C3']:
    for cell in row:
        print(cell.value)

# 访问整行
for cell in ws[1]:
    print(cell.value)

# 访问整列
for cell in ws['A']:
    print(cell.value)

使用pandas:

python 复制代码
import pandas as pd

df = pd.read_excel('文件.xlsx')

# 访问单个单元格
value = df.iloc[0, 0]  # 第1行第1列
value = df.loc[0, '列名']  # 使用列名

# 访问多个单元格
subset = df.iloc[0:3, 0:2]  # 前3行前2列
subset = df.loc[:, ['列1', '列2']]  # 指定列

3.3 插入/删除单元格

手动操作:

  • 插入:选中单元格 → 右键 → 插入 → 选择插入方式
  • 删除:选中单元格 → 右键 → 删除 → 选择删除方式

Python操作:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')
ws = wb.active

# 插入行
ws.insert_rows(2, 3)  # 在第2行插入3行

# 插入列
ws.insert_cols(2, 2)  # 在第2列插入2列

# 删除行
ws.delete_rows(2, 3)  # 从第2行开始删除3行

# 删除列
ws.delete_cols(2, 2)  # 从第2列开始删除2列

wb.save('文件.xlsx')

3.4 合并/拆分单元格

手动操作:

  • 合并:选中单元格区域 → 开始 → 合并后居中
  • 拆分:选中合并的单元格 → 开始 → 取消合并单元格

Python操作:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')
ws = wb.active

# 合并单元格
ws.merge_cells('A1:C1')
ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=3)

# 拆分单元格
ws.unmerge_cells('A1:C1')

# 写入合并单元格
ws['A1'] = '合并单元格内容'

wb.save('文件.xlsx')

数据输入与编辑

4.1 输入数据

手动操作:

  • 直接输入:选中单元格,输入内容,按Enter
  • 快速填充:输入数据,拖动单元格右下角的填充柄
  • 自动填充序列:输入起始值,拖动填充柄

特殊输入:

  • 日期:2024-01-012024/1/1
  • 时间:14:3014:30:00
  • 分数:0 1/2(输入0空格1/2)
  • 文本格式数字:先输入单引号 '001

Python操作:

python 复制代码
from openpyxl import Workbook
from datetime import datetime, date

wb = Workbook()
ws = wb.active

# 输入文本
ws['A1'] = '姓名'

# 输入数字
ws['B1'] = 100

# 输入日期
ws['C1'] = date(2024, 1, 1)

# 输入时间
ws['D1'] = datetime.now()

# 输入公式
ws['E1'] = '=SUM(B1:B10)'

# 批量输入数据
data = [
    ['姓名', '年龄', '部门'],
    ['张三', 25, '销售'],
    ['李四', 30, '技术'],
    ['王五', 28, '市场']
]

for row in data:
    ws.append(row)

wb.save('数据输入.xlsx')

4.2 编辑数据

手动操作:

  • 双击单元格进入编辑模式
  • 选中单元格按F2进入编辑模式
  • 在编辑栏直接修改

Python操作:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')
ws = wb.active

# 修改单元格值
ws['A1'] = '新值'

# 批量修改
for row in ws.iter_rows(min_row=2, max_row=10, min_col=1, max_col=1):
    for cell in row:
        cell.value = cell.value + '_修改'

wb.save('文件.xlsx')

4.3 复制粘贴

手动操作:

  • 复制:Ctrl + C
  • 剪切:Ctrl + X
  • 粘贴:Ctrl + V
  • 选择性粘贴:Ctrl + Alt + V

选择性粘贴选项:

  • 值:只粘贴值,不包含格式和公式
  • 格式:只粘贴格式
  • 公式:只粘贴公式
  • 转置:行列互换

Python操作:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')
ws = wb.active

# 复制单元格值
source_value = ws['A1'].value
ws['B1'].value = source_value

# 复制区域(使用pandas更方便)
import pandas as pd

df = pd.read_excel('文件.xlsx')
# 复制列
df['新列'] = df['原列']

# 转置
df_transposed = df.T

df.to_excel('文件.xlsx', index=False)

4.4 查找和替换

手动操作:

  • 查找:Ctrl + F
  • 替换:Ctrl + H
  • 查找下一个:Shift + F4

Python操作:

python 复制代码
from openpyxl import load_workbook

wb = load_workbook('文件.xlsx')
ws = wb.active

# 查找并替换
for row in ws.iter_rows():
    for cell in row:
        if cell.value == '查找内容':
            cell.value = '替换内容'

wb.save('文件.xlsx')

# 使用pandas进行替换
import pandas as pd

df = pd.read_excel('文件.xlsx')
df = df.replace('查找内容', '替换内容')
df.to_excel('文件.xlsx', index=False)

格式设置

5.1 字体格式

手动操作:

  • 字体:开始 → 字体下拉框
  • 字号:开始 → 字号下拉框
  • 加粗:Ctrl + B
  • 斜体:Ctrl + I
  • 下划线:Ctrl + U

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.styles import Font

wb = Workbook()
ws = wb.active

# 设置字体
ws['A1'] = '标题'
ws['A1'].font = Font(
    name='微软雅黑',
    size=14,
    bold=True,
    italic=False,
    color='FF0000'  # 红色
)

wb.save('字体格式.xlsx')

5.2 单元格填充

手动操作:

  • 填充颜色:开始 → 填充颜色
  • 图案样式:开始 → 单元格格式 → 填充 → 图案样式

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.styles import PatternFill

wb = Workbook()
ws = wb.active

# 设置背景色
ws['A1'] = '彩色单元格'
ws['A1'].fill = PatternFill(
    start_color='FFFF00',  # 黄色
    end_color='FFFF00',
    fill_type='solid'
)

wb.save('填充格式.xlsx')

5.3 边框设置

手动操作:

  • 边框:开始 → 边框下拉框
  • 自定义边框:开始 → 单元格格式 → 边框

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.styles import Border, Side

wb = Workbook()
ws = wb.active

# 设置边框
thin_border = Border(
    left=Side(style='thin'),
    right=Side(style='thin'),
    top=Side(style='thin'),
    bottom=Side(style='thin')
)

ws['A1'] = '带边框'
ws['A1'].border = thin_border

wb.save('边框格式.xlsx')

5.4 对齐方式

手动操作:

  • 水平对齐:开始 → 左对齐/居中/右对齐
  • 垂直对齐:开始 → 顶端对齐/居中/底端对齐
  • 文本换行:开始 → 自动换行

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.styles import Alignment

wb = Workbook()
ws = wb.active

# 设置对齐
ws['A1'] = '居中对齐'
ws['A1'].alignment = Alignment(
    horizontal='center',  # 水平居中
    vertical='center',    # 垂直居中
    wrap_text=True        # 自动换行
)

wb.save('对齐格式.xlsx')

5.5 数字格式

手动操作:

  • 数字格式:开始 → 数字格式下拉框
  • 自定义格式:Ctrl + 1 → 数字 → 自定义

常用格式代码:

  • 0.00:保留两位小数
  • #,##0:千位分隔符
  • 0%:百分比
  • yyyy-mm-dd:日期格式
  • ¥#,##0.00:货币格式

Python操作:

python 复制代码
from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 设置数字格式
ws['A1'] = 1234.5678
ws['A1'].number_format = '#,##0.00'  # 1,234.57

ws['B1'] = 0.85
ws['B1'].number_format = '0%'  # 85%

ws['C1'] = 1234.56
ws['C1'].number_format = '¥#,##0.00'  # ¥1,234.56

from datetime import date
ws['D1'] = date(2024, 1, 1)
ws['D1'].number_format = 'yyyy-mm-dd'  # 2024-01-01

wb.save('数字格式.xlsx')

5.6 行高和列宽

手动操作:

  • 调整行高:拖动行号之间的分隔线
  • 调整列宽:拖动列标之间的分隔线
  • 自动调整:双击分隔线

Python操作:

python 复制代码
from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 设置列宽
ws.column_dimensions['A'].width = 20
ws.column_dimensions['B'].width = 15

# 设置行高
ws.row_dimensions[1].height = 30
ws.row_dimensions[2].height = 25

# 自动调整列宽(需要遍历计算)
for column in ws.columns:
    max_length = 0
    column_letter = column[0].column_letter
    for cell in column:
        if cell.value:
            max_length = max(max_length, len(str(cell.value)))
    ws.column_dimensions[column_letter].width = max_length + 2

wb.save('行高列宽.xlsx')
相关推荐
伟贤AI之路7 小时前
原创分享:Markdown 表格导出 Excel/Json - 方便数据处理分析
json·excel·markdown
jiayong238 小时前
Excel自动化操作详细文档04
运维·自动化·excel
jiayong239 小时前
Excel高级功能详细文档03
excel
Channing Lewis1 天前
Python读取excel转成html,并且复制excel中单元格的颜色(字体或填充)
python·html·excel
醉卧考场君莫笑1 天前
excel数据统计与数据可视化
信息可视化·excel
weixin_440401691 天前
WPS Excel 宏使用
excel··wps
GalenZhang8881 天前
Excel/WPS 表格数据合并操作指南
excel·wps
海拥✘1 天前
Excel制作跳动爱心动画:一步步创建动态数学心形图
excel
教练、我想打篮球1 天前
127 apache poi3.11 写 word 中内嵌 表格换行的输出
word·excel·docx·换行