Python 将数据写入 excel(新手入门)

tsx81429  论坛元老 | 2024-9-26 03:33:57 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1587|帖子 1587|积分 4761

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、场景分析

假设有如下一组列表数据:
写一段 python脚本 将这组数据写入一个新建的 excel,表头是 【序号】、【姓名】、【性别】、【年事】
  1. student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}]
复制代码
最终表格如下:

二、新建 excel 的数据写入

1、安装 openpyxl 库

在 Python 中可以使用 openpyxl 库来向 Excel 文件写入数据。
  1. pip install openpyxl
复制代码
 2、脚本

excel_write.py 如下:
  1. from openpyxl import Workbook
  2. # 创建一个新的工作簿
  3. wb = Workbook()
  4. # 选择默认的活动工作表
  5. ws = wb.active
  6. # 数据准备
  7. student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}]
  8. # 向工作表中写入表头
  9. ws['A1'] = '序号'
  10. ws['B1'] = '姓名'
  11. ws['C1'] = '性别'
  12. ws['D1'] = '年龄'
  13. for i, item in enumerate(student_list):
  14.         temp_list = [str(i+1)]
  15.         print(item)
  16.         temp_list.append(item['name'])
  17.         temp_list.append(item['gender'])
  18.         temp_list.append(item['age'])
  19.         # 在已有数据的基础上继续写入,接收列表数据,如 [1, '小林', '男', 10]
  20.         ws.append(temp_list)
  21. # 保存工作簿
  22. wb.save('output.xlsx')
复制代码
在上述代码中:
这段代码特别适合于从网页爬下来列表数据,写入 excel,适合 "表哥表姐" 们的一样平常数据处理。 
   1、起首导入Workbook类。
2、创建一个新的工作簿对象wb。
3、获取默认的运动工作表ws。
4、使用雷同字典的方式指定单元格的位置并为其赋表头。
5、遍历列表数据,按行输出。
6、最后使用 save()方法保存工作簿到指定的文件。
   3、运行

  1. py excel_write.py
复制代码
4、结果


三、已存在的 excel 的数据写入

假设有如下一个已存在的 student.xlsx:
如何将 student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}] 这组数据写进入呢?

1、脚本

student_write.py 如下:
  1. from openpyxl import load_workbook
  2. # 打开已有的工作簿
  3. wb = load_workbook('student.xlsx')
  4. # 选择默认的活动工作表
  5. ws = wb.active
  6. # 数据准备
  7. student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}]
  8. # 从第二行开始追加,跳过表头
  9. next_row = 2
  10. for i, item in enumerate(student_list):
  11.         ws.cell(row=next_row, column=1, value=str(i+1))
  12.         ws.cell(row=next_row, column=2, value=item['name'])   
  13.         ws.cell(row=next_row, column=3, value=item['gender'])   
  14.         ws.cell(row=next_row, column=4, value=item['age'])
  15.         next_row += 1
  16. # 保存工作簿
  17. wb.save('student.xlsx')
复制代码
 这段脚本就比力适合复杂格式模板的数据写入
   ws.cell 表现给单元格设置数据
  row: excel 行,从1开始
  column: excel 列,从1开始
  2、运行

  1. py student_write.py
复制代码
3、结果


四、读取 excel 数据到 list(解析 excel)

假设有如下 student.xlsx 表格,读取数据到 list [{'name': XX, 'gender': '', 'age': ''}]里面:

1、安装 pandas 库

在 Python 中可以使用 pandas 库来解析 Excel 文件。
  1. pip install pandas
复制代码
  留意:
  由于 pandas 库依靠 openpyxl 库,所以需要先安装 openpyxl,否则会报错:
  

  2、脚本

 excel_read.py:
  1. import pandas as pd
  2. # 菜鸟教程:https://www.runoob.com/pandas/pandas-dataframe.html
  3. # 输入文档
  4. input_path=r"C:\Users\Administrator\Desktop\py\excel\student.xlsx"
  5. # 读取 Excel 文件,将其存储在一个DataFrame对象中
  6. df = pd.read_excel(input_path)
  7. # 查看数据的前几行
  8. # print(df.head())
  9. # 显示数据的行数和列数,元组类型,(3, 4) 第一个是行,第二个是列
  10. # print(df.shape)
  11. # 显示行数
  12. # print(df.shape[0])
  13. # 行数
  14. rows = df.shape[0]
  15. student_list = []
  16. # 遍历每一行
  17. for  i  in range(0, rows):
  18.      item = {}
  19.      item['name'] = df.loc[i, '姓名']
  20.      item['gender'] = df.loc[i, '性别']
  21.      item['age'] = int(df.loc[i, '年龄'])
  22.      student_list.append(item)
  23. print(student_list)
复制代码
   df.loc[row_index, column_name] 
  通过标签选择数据;
  row_index:行索引,从0开始。
  column_name:列名。
   3、运行

  1. py excel_read.py
复制代码
4、结果


五、拥抱AI

AI 对于脚本语言的学习能力是最强的,这种简朴的代码,完全可以叫AI帮我们写:





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表