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')
相关推荐
什仙5 分钟前
Mathcad Prime 对比 Excel/MATLAB/Mathematica:核心优势速览
excel
快乐的哈士奇5 分钟前
【Next.js实战②】Excel 派送表动态解析:表头识别与 FIELD_ALIASES 映射
前端·javascript·excel
daols881 小时前
vue vxe-table 复制数据到 Excel:支持带表头复制
vue.js·excel·vxe-table
海兰14 小时前
【web应用】Excel 项目数据自动化分析系统(AI 驱动分析)详细设计与部署指南(附源代码)
前端·人工智能·自动化·excel
2501_9307077821 小时前
使用 C# 代码读取或删除 Excel 文档属性
excel
hikktn1 天前
Excel 日期格式统一治理:从“显示不全“到“自动兼容“的完整方案
windows·python·excel
霸道流氓气质1 天前
Spring Boot 大数据量 Excel 导入导出功能实现指南
spring boot·后端·excel
霸道流氓气质1 天前
Java 单元测试生成大量 Excel 测试数据实战指南
java·单元测试·excel
IT WorryFree1 天前
FortiGate常用资产 OID 清单,配套 Excel 台账模板字段
网络·人工智能·excel
MyFreeIT1 天前
Excel Enable Content
excel