首页 > 编程语言 >python 操作 xlsx

python 操作 xlsx

时间:2023-05-30 22:44:59浏览次数:54  
标签:xlsx sheet name python value path 操作 row

目录

读取/写入:openpyxl

demo1

import openpyxl
import os


# 创建excel
def write_excel_xlsx(path, sheet_name, value):
    if not os.path.exists(path):
        write_new_excel_xlsx(path, sheet_name, value)
    else:
        append_write_excel_xlsx(path, sheet_name, value)

# 新创建excel
def write_new_excel_xlsx(path, sheet_name, value):
    index = len(value)
    workbook = openpyxl.Workbook()
    sheet = workbook.active
    sheet.title = sheet_name
    for i in range(0, index):
        for j in range(0, len(value[i])):
            sheet.cell(row=i + 1, column=j + 1, value=str(value[i][j]))
    workbook.save(path)
    print("xlsx格式表格写入数据成功!")

# 追加写入
def append_write_excel_xlsx(path, sheet_name, value):
    workbook = openpyxl.load_workbook(path)
    sheet = workbook[sheet_name]
    old_max_row_mum = sheet.max_row # 已存在文件最大的行数
    for i in range(len(value)):
        item = value[i]
        for column in range(len(item)):
            # print(oldRowNum + 1, column + 1, item[column])
            # 参数对应 行, 列, 值
            sheet.cell(row=old_max_row_mum + 1, column=column + 1, value=str(item[column]))
        old_max_row_mum += 1
    workbook.save(path)
    print("xlsx格式表格追加写入数据成功!")


def read_excel_xlsx(path, sheet_name):
    workbook = openpyxl.load_workbook(path)
    # sheet = wb.get_sheet_by_name(sheet_name)这种方式已经弃用,不建议使用
    # sheet = workbook.worksheets[0]
    sheet = workbook[sheet_name]

    # 方式一
    for row in sheet.rows:
        # 收集当前行每个单元格中的数据
        row_text_list = []
        for cell in row:
            row_text_list.append(cell.value)
            print(cell.value, "\t", end="")
        print(row_text_list)  # ["111", "女", "66", "石家庄", "运维工程师"]
        print()

    # 方式二
    for row in sheet.iter_rows(min_row=2):  # 从第二行开始读
        print(row[1].value)

    # 方式三
    for row in sheet.iter_rows(min_row=2, max_row=5):  # 从第2-5行数据
        if row[1].value is None:  # 没有时输出None
            continue
        print(row[1].value)


# 当前文件地址
base_dir = os.path.dirname(os.path.abspath(__file__))  # 'G:\\site\\python\\learn\\base'
book_name_xlsx = os.path.join(base_dir, 'xlsx格式测试工作簿.xlsx')  # 'G:\\site\\python\\learn\\base\\xlsx格式测试工作簿.xlsx'

sheet_name_xlsx = 'xlsx格式测试表'

value1 = [["姓名", "性别", "年龄", "城市", "职业"],
          ["111", "女", "66", "石家庄", "运维工程师"],
          ["222", "男", "55", "南京", "饭店老板"],
          ["333", "女", "27", "苏州", "保安"], ]

value2 = [
    ["444", "男", "55", "南京", "饭店老板"],
    ["55", "女", "27", "苏州", "保安"], ]

write_excel_xlsx(book_name_xlsx, sheet_name_xlsx, value1)
write_excel_xlsx(book_name_xlsx, sheet_name_xlsx, value2)
# read_excel_xlsx(book_name_xlsx, sheet_name_xlsx)

更多文档:

标签:xlsx,sheet,name,python,value,path,操作,row
From: https://www.cnblogs.com/haima/p/17444727.html

相关文章

  • Python程序与设计
    Python学习笔记2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代......
  • 用Python开发输入法后台(7)——关于规则的规则
    我又重构了一遍输入法,目的是定义输入法规则的规则,只要遵循这些规则,就可以方便的制定新的输入规则.我的输入法规则如下:规则文件名:ImeRule.py需要实现函数OnFilterKeyDown原型:f(keyCode:int,keyStates:list,msg:dict)->bool功能:键被按下的消息,根据返回值确......
  • Python读excel——xlrd
    Python读excel——xlrdPython读取Excel表格,相比xlwt来说,xlrd提供的接口比较多,但过程也有几个比较麻烦的问题,比如读取日期、读合并单元格内容。下面先看看基本的操作:图表数据整体思路为,打开文件,选定表格,读取行列内容,读取表格内数据详细代码如下:importxlrdfromdatetimeimportda......
  • python daal test
     importosimportsysfromdaal.algorithmsimportlow_order_momentsfromdaal.data_managementimportFileDataSource,DataSourceIfacefromdaal.data_managementimport(readOnly,NumericTableIface,BlockDescriptor,BlockDescriptor_Float32,BlockDescriptor_......
  • python二维数组初始化
    >>>a=[[0]*3foriinrange(3)]>>>a[[0,0,0],[0,0,0],[0,0,0]]>>>a[1][1]=121>>>a[[0,0,0],[0,121,0],[0,0,0]]>>>a[0][0]=11>>>a[[11,0,0],[0,121,0],[0,0,0]]>>>......
  • python pickle to json
    ref:https://gist.github.com/Samurais/567ebca0f59c612eb977065008aad867 '''Convertapklfileintojsonfile'''importsysimportosimportpickleimportjsondefconvert_dict_to_json(file_path):withopen(file_path,&......
  • python spark 求解最大 最小 平均 中位数
    rating_data_raw=sc.textFile("%s/ml-100k/u.data"%PATH)printrating_data_raw.first()num_ratings=rating_data_raw.count()print"Ratings:%d"%num_ratings#In[35]:rating_data=rating_data_raw.map(lambdaline:line.split(&quo......
  • Python爬取豆瓣电影Top250 + 数据可视化
    我的这篇博客的一些代码解释python大作业电影演员数据分析1.爬取数据1.1导入以下模块importosimportreimporttimeimportrequestsfrombs4importBeautifulSoupfromfake_useragentimportUserAgentfromopenpyxlimportWorkbook,load_workbook1.2获取每页......
  • 【python教程】map、多进程与进度条
    转载:【python教程】map、多进程与进度条-知乎(zhihu.com)今天讲讲我在实习中学到的一点python知识,核心内容是多进程,也即我们常说的并行计算。map首先提个问题,给出一个列表,对列表中的每个元素都平方,代码怎么写?最简单直观的方法自然就是for循环。alist=[1,2,3,4,5,6,......
  • 万年历python
    importtkinterastkimporttkinter.ttkasttkimportdatetimeimportcalendartoday_date=datetime.date.today()today_date_year=int(today_date.year)today_date_month=int(today_date.month)today_date_week=today_date.isocalendar()date_num_list......