栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python操作excel,用openpyxl,慎用xlsxwriter

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python操作excel,用openpyxl,慎用xlsxwriter

遇到的几个坑:

1、要打开已存在的工作簿,向里面添加东西。一开始用xlsxwriter,最后发现走了弯路,有博客说xlsxwriter根本不支持“打开已存在的工作簿”,还是选用openpyxl好。

2、往单元格写公式,最后忘记保存了,浪费了时间。代码如下:

wb = load_workbook(sExcelFile)#sExcelFile是excel文件名
ws = wb.active
excel_formula = "=SUM(A2:C2)"
ws.cell(row=5, column=4, value=excel_formula)
wb.save(sExcelFile)
wb.close()

3、输出单元格中公式的值。

注意:

1) 要先打开,保存,关闭,再用 workbook = load_workbook(sExcelFile, data_only=True) ,注意参数是data_only=True。如果直接打开,就是用了True,有可能还是输出公式

2)just_open这个函数要用excel文件的绝对路径!如果不用just_open函数,明明有值,最好输出也是None

3)安装win32com 包的方法:  pip install  pypiwin32

用以下的代码:

from win32com.client import Dispatch
def just_open(filename):
    xlApp = Dispatch("Excel.Application")
    xlApp.Visible = False
    xlBook = xlApp.Workbooks.Open(filename)
    xlBook.Save()
    xlBook.Close()
def read(sExcelFile):
    just_open("D:\myProgram\pythonProgram\JetbrainsCrack\excelToMssql\mssqlToExcelBom\往单元格写公式.xlsx")#注意:just_open这个函数要用excel文件的绝对路径!
    workbook = load_workbook(sExcelFile, data_only=True)
    writed_sheet = workbook['Sheet1']
    str = writed_sheet.cell(2, 4).value
    # wb = load_workbook(sExcelFile,data_only=True)
    # ws = wb.active
    # cell_value = ws.cell(row=3, column=4).value
    print(str)  #这样应该可以输出公式的值了

4、单元格的值,如果是"#N/A",就着色

from openpyxl.styles import  PatternFill

workbook = load_workbook(sExcelFile, data_only=True)

ws= workbook['Sheet1']

if (str == "#N/A"):
    fill = PatternFill("solid", fgColor="1874CD")
    ws.cell(5, 6).fill = fill

基本上大功告成。最后py转exe

pip install pyinstaller

pyinstaller -F 自己的py文件.py    #参数自选

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313406.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号