day20表格文件操作

一.excel文件读操作

注意:openpyxl只能处理格式是.xlsx的excel文件

import os
import openpyxl
  1. excel相关的专业术语
    工作簿 - 一个excel文件就是一个工作簿
    工作表(表) - 一个工作簿中可以有多张表(至少一张表)
    单元格 - 保存数据的每个格子

  2. excel文件读操作
    1)加载excel文件获得工作簿对象

    openpyxl.load_workbook(文件路径)
    wb = openpyxl.load_workbook('file/data.xlsx')
    

    2)获取所有工作表的表名

    names = wb.sheetnames
    print(names)
    

    3)获取工作表

    工作簿对象.active    -   获取活跃表(被打开的表)
    sheet1 = wb.active
    print(sheet1)
    
    工作簿对象[表名]  -   获取指定的工作表
    sheet2 = wb['学生']
    print(sheet2)
    

    4)获取单元格

    表对象.cell(行号,列号)  -   获取指定单元格,行号和列号都是从1开始的数字
    cell1 = sheet1.cell(1, 1)
    print(cell1)
    
    表对象['列号行号']  -   获取指定单元格,列号用大写字母(不常用)
    cell2 = sheet1['D3']
    

    5)获取单元格内容

    单元格对象.value
    print(cell1.value)
    

    6)获取一个表最大的行数和最大列数

    表对象.max_row   -   最大行数
    表对象.max_column    -   最大列数
    max_row = sheet1.max_row
    max_column = sheet1.max_column
    

二.excel文件写操作

  1. 获取工作簿
    1)获取已经存在的excel文件对应的工作簿:openpyxl.load_workbook(路径)
    2)新建一个工作簿(默认有一张表):openpyxl.Workbook()

    # 如果文件已经存在就打开,不存在才创建
    if os.path.exists('file/newData.xlsx'):
        wb = openpyxl.load_workbook('file/newData.xlsx')
    else:
        wb = openpyxl.Workbook()
        print(wb.sheetnames)
    
  2. 添加表
    工作簿对象.create_sheet(表名,下标) - 在指定位置创建指定表,并且返回创建的表对象

    sheet1 = wb.create_sheet('商品表')
    sheet2 = wb.create_sheet('房产信息', 0)
    
  3. 删除表
    工作簿对象.remove(表对象)

    wb.remove(wb['Sheet'])
    
  4. 插入数据
    单元格对象.value = 数据

    wb['商品表'].cell(1, 1).value = '商品名称'
    
  5. 保存文件

    wb.save('file/newData.xlsx')
    

三.练习

import openpyxl

wb = openpyxl.load_workbook('files/阿里巴巴2020年股票数据.xlsx')
sheet = wb.active
# 获取最大行数和列数
max_r = sheet.max_row
max_c = sheet.max_column

# 获取表中所有的数据
# for row in range(1, max_r+1):
#     for col in range(1, max_c+1):
#         print(sheet.cell(row, col).value, end=' ')
#     print()


# 获取第一列所有的数据
for row in range(2, max_r+1):
    print(sheet.cell(row, 1).value)
# 练习:将students中的学生信息插入到'学生信息'表中,字典的键作为表头
students = [
    {'stuid': 'stu001', 'name': '小明', 'age': 20, 'score': 90},
    {'stuid': 'stu002', 'name': 'stu2', 'age': 19, 'score': 89},
    {'stuid': 'stu003', 'name': '张三', 'age': 25, 'score': 78},
    {'stuid': 'stu004', 'name': 'lisi', 'age': 30, 'score': 99}
]


import openpyxl
import os

if os.path.exists('files/学校.xlsx'):
    wb = openpyxl.load_workbook('files/学校.xlsx')
else:
    wb = openpyxl.Workbook()

if '学生信息' not in wb.sheetnames:
    sheet = wb.create_sheet('学生信息')
else:
    sheet = wb['学生信息']

# 写第1行
keys = list(students[0])
length = len(keys)
for col in range(1, length+1):
    sheet.cell(1, col).value = keys[col-1]

# 写学生信息
row = 2
for stu in students:
    for col in range(1, length+1):
        sheet.cell(row, col).value = stu[keys[col-1]]
    row += 1


wb.save('files/学校.xlsx')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 通达信是一款常用的股票分析软件,其保存的日线数据文件格式为day文件。而csv文件是一种常见的数据文件格式,可以在不同的软件和工具之间交换和共享数据。 将通达信的day文件转换为csv文件可以通过以下步骤完成: 1. 打开通达信软件,并选择要转换的股票或指数的日线数据。 2. 在通达信软件中找到“导出”或“另存为”等选项,选择将数据导出为文本文件。 3. 在弹出的保存对话框中,选择保存为txt格式,以便后续处理。 4. 使用文本编辑器(如记事本、Sublime Text等)打开保存的txt文件。 5. 检查txt文件的格式,通达信的day文件通常包含日期、开盘价、最高价、最低价、收盘价等信息,每个数据之间用制表符或空格分隔。 6. 检查并调整txt文件的编码,确保其与要求的csv文件编码一致(如UTF-8)。 7. 在文本编辑器中选择“另存为”选项,并将文件格式选择为csv格式。 8. 保存文件,并选择适当的文件名和存储位置。 转换完成后,您就可以使用支持csv文件格式的软件(如Microsoft ExcelPython pandas库等)进行进一步的数据分析、可视化或处理。 需要注意的是,转换过程中可能需要根据具体的数据格式和软件要求进行一些调整和处理,例如处理日期格式、缺失值等。此外,如需处理多只股票或指数的数据,需要对每一个day文件进行转换。 ### 回答2: 通达信day文件是一种历史股票数据文件格式,包含了股票的高、低、开、收、成交量等信息。而CSV文件是一种以逗号分隔值的文本文件,用于储存简单的表格数据。如果想将通达信day文件转换为CSV文件,可以按照以下步骤操作。 首先,需要打开通达信软件,并选择要导出的历史数据。通达信软件提供了数据导出的功能,可以通过菜单或快捷键找到导出选项。 接下来,选择导出文件的路径和名称。通常可以选择将导出的CSV文件保存在本地计算机的某个文件夹中。 然后,在导出选项中选择CSV文件作为导出的文件格式。通常可以在导出选项中看到支持的文件格式,选择CSV文件即可。 最后,点击导出按钮,等待一段时间,通达信软件将会自动将day文件转换为CSV文件,并保存在之前选择的路径中。 转换完成后,可以在保存的路径中找到生成的CSV文件。可以使用文本编辑器或者电子表格软件打开CSV文件,查看其中的股票历史数据,包括日期、开盘价、收盘价、最高价、最低价等。 需要注意的是,不同版本的通达信软件可能略有差异,具体的操作步骤可能会有所不同。如果对于软件操作不熟悉,可以参考软件的帮助文档或者寻求专业人士的帮助。 ### 回答3: 通达信day文件是一种常见的股票数据文件格式,而CSV文件是一种常用的数据存储格式。将通达信day文件转换为CSV文件可以方便地对股票数据进行处理和分析。 通达信day文件通常以“day”为后缀名,包含股票的每日交易数据,如开盘价、收盘价、最高价、最低价、成交量等。而CSV文件以逗号分隔不同的数值,并且可以直接在电子表格软件中打开和编辑。 要进行转换,首先需要打开通达信软件,选择相应的股票数据文件。然后在数据菜单中选择“导出数据”选项,并选择CSV格式。接下来,在弹出的导出设置窗口中,可以选择需要导出的数据类型、导出起止日期等,并点击“确认”按钮。 此时,通达信软件会自动生成相应的CSV文件,保存在指定的路径下。打开生成的CSV文件,可以使用电子表格软件(如Excel)打开和编辑,方便进行数据处理和分析。在CSV文件中,每一行代表一条股票交易数据,各个数据字段以逗号分隔。 总结而言,将通达信day文件转换为CSV文件,可以通过通达信软件进行操作,选择导出数据的格式为CSV,然后软件会自动生成对应的CSV文件,方便进行后续的数据处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值