当前位置: 首页 > wzjs >正文

网站核心推广思路大数据营销

网站核心推广思路,大数据营销,青海网站建设哪家强,山东学生做自我评价的网站目录 系列文章 1 重点 2 打开Excel表 3 Excel保存和另存为 4 新建工作簿和sheet表 5 另存为pdf 6 excel表打印 7 后续 系列文章 知识周汇 | Python操作Excel全攻略系列(一):模块详解篇 知识周汇 | Python操作Excel全攻略系列&#x…

目录

系列文章

1 重点

2 打开Excel表

3 Excel保存和另存为

4 新建工作簿和sheet表

5 另存为pdf

6 excel表打印

7 后续


系列文章

知识周汇 | Python操作Excel全攻略系列(一):模块详解篇

知识周汇 | Python操作Excel全攻略系列(三):sheet操作篇

1 重点

作为系列研究的延续,本文将在前文研究基础上,重点探讨Excel表格操作中的核心功能实现,包括新建、打开、保存、另存为、转为pdf、打印等关键操作,Excel具体操作内容如下图所示

2 打开Excel表

完整代码

import osimport xlwings as xwexcel_url = '新建XLSX工作表.xlsx'app = xw.App(visible=False, add_book=False)
app.display_alerts = False
app.screen_updating = False
if not os.path.exists(excel_url):  # 文件是否存在wb = app.books.add()
else:wb = app.books.open(excel_url)wb.save()
wb.close()
app.kill()

2.1 导入模块

import os
import xlwings as xw
  • os 模块用于与操作系统交互,比如检查文件是否存在。

  • xlwings 是一个用于操作 Excel 文件的 Python 库,可以自动化 Excel 的操作。

2.2 定义 Excel 文件路径

excel_url = '新建XLSX工作表.xlsx'
  • excel_url 是 Excel 文件的路径和名称。这里使用的是相对路径,文件名为 新建XLSX工作表.xlsx

2.3 初始化 Excel 应用程序

app = xw.App(visible=False, add_book=False)
app.display_alerts = False
app.screen_updating = False
  • xw.App(visible=False, add_book=False):创建一个 Excel 应用程序实例,visible=False 表示 Excel 应用程序在后台运行,不显示界面;add_book=False 表示不自动创建新的工作簿。

  • app.display_alerts = False:禁用 Excel 的提示和警告,避免弹出对话框。

  • app.screen_updating = False:禁用屏幕更新,可以提高代码执行速度。

2.4 检查文件是否存在并打开或创建

if not os.path.exists(excel_url):  # 文件是否存在wb = app.books.add()
else:wb = app.books.open(excel_url)
  • os.path.exists(excel_url):检查指定的 Excel 文件是否存在。

    • 如果文件不存在,app.books.add() 会创建一个新的工作簿。

    • 如果文件存在,app.books.open(excel_url) 会打开该文件。

2.5 保存并关闭工作簿

wb.save()
wb.close()
  • wb.save():保存工作簿。如果是新创建的工作簿,会保存为 新建XLSX工作表.xlsx

  • wb.close():关闭工作簿。

2.6 关闭 Excel 应用程序

app.kill()
  • app.kill():关闭 Excel 应用程序实例,释放资源。

3 Excel保存和另存为

还是以上述代码为例,关于Excel保存和另存为,主要是这一句关键代码

wb.save()
wb.save('新的excel表.xlsx')

wb.save():保存工作簿。如果是新创建的工作簿,会保存为 新建XLSX工作表.xlsx

wb.save('新的excel表.xlsx'):即另存为新的工作簿《新的excel表.xlsx》

4 新建工作簿和sheet表

完整代码

import osimport pandas as pd
import xlwings as xwdef sheetnum_and_sheet_names(excel_url):''':param excel_url:处理excel表文件:return:返回sheet个数和sheet名字'''df = pd.read_excel(excel_url, sheet_name=None)sheet_names = list(df.keys())sheetnum = len(sheet_names)return sheetnum, sheet_namesdef new_excel(excel_url):''':param excel_url: excel保存路径:return:'''app = xw.App(visible=False, add_book=False)app.display_alerts = Falseapp.screen_updating = Trueif not os.path.exists(excel_url):  # 文件是否存在wb = app.books.add()else:wb = app.books.open(excel_url)sht0 = wb.sheets[0]wb.save(excel_url)wb.close()app.kill()return excel_urldef new_sheet(excel_url, sheetname):# 如不存在则新建excel表if not os.path.exists(excel_url):  # 文件是否存在new_excel(excel_url)sheetnum, sheet_names = sheetnum_and_sheet_names(excel_url)if sheetname not in sheet_names:app = xw.App(visible=False, add_book=False)app.display_alerts = Falseapp.screen_updating = Trueif not os.path.exists(excel_url):  # 文件是否存在wb = app.books.add()else:wb = app.books.open(excel_url)wb.sheets.add(sheetname)wb.save()wb.close()app.kill()return excel_urlnew_sheet('temp_测试.xlsx', sheetname='1')

这段代码的主要功能包括:

  1. 获取 Excel 文件的 Sheet 信息:通过 sheetnum_and_sheet_names 函数获取 Sheet 的数量和名称。

  2. 创建或打开 Excel 文件:通过 new_excel 函数创建或打开 Excel 文件。

  3. 向 Excel 文件中添加新的 Sheet:通过 new_sheet 函数向 Excel 文件中添加新的 Sheet,如果文件或 Sheet 已存在则跳过。

代码解读

4.1 导入模块

import os
import pandas as pd
import xlwings as xw
  • os:用于与操作系统交互,例如检查文件是否存在。

  • pandas:用于读取 Excel 文件的内容。

  • xlwings:用于操作 Excel 文件,例如创建、打开、保存和关闭文件。

4.2 定义函数 sheetnum_and_sheet_names

def sheetnum_and_sheet_names(excel_url):''':param excel_url: 处理excel表文件:return: 返回sheet个数和sheet名字'''df = pd.read_excel(excel_url, sheet_name=None)sheet_names = list(df.keys())sheetnum = len(sheet_names)return sheetnum, sheet_names
  • 功能:读取 Excel 文件,返回文件中 Sheet 的数量和所有 Sheet 的名称。

  • 参数

    • excel_url:Excel 文件的路径。

  • 返回值

    • sheetnum:Sheet 的数量。

    • sheet_names:所有 Sheet 的名称列表。

  • 实现细节

    • 使用 pandas.read_excel 读取 Excel 文件,sheet_name=None 表示读取所有 Sheet。

    • df.keys() 返回所有 Sheet 的名称。

    • 通过 len(sheet_names) 获取 Sheet 的数量。

4.3 定义函数 new_excel

def new_excel(excel_url):''':param excel_url: excel保存路径:return:'''app = xw.App(visible=False, add_book=False)app.display_alerts = Falseapp.screen_updating = Trueif not os.path.exists(excel_url):  # 文件是否存在wb = app.books.add()else:wb = app.books.open(excel_url)sht0 = wb.sheets[0]wb.save(excel_url)wb.close()app.kill()return excel_url
  • 功能:创建一个新的 Excel 文件,如果文件已存在则打开它。

  • 参数

    • excel_url:Excel 文件的路径。

  • 返回值:返回 Excel 文件的路径。

  • 实现细节

    • 使用 xlwings 创建一个 Excel 应用程序实例。

    • 检查文件是否存在:

      • 如果文件不存在,使用 app.books.add() 创建一个新的工作簿。

      • 如果文件存在,使用 app.books.open(excel_url) 打开该文件。

    • 获取第一个 Sheet(sht0 = wb.sheets[0])。

    • 保存并关闭工作簿,然后关闭 Excel 应用程序。

4.4 定义函数 new_sheet

def new_sheet(excel_url, sheetname):# 如不存在则新建excel表if not os.path.exists(excel_url):  # 文件是否存在new_excel(excel_url)sheetnum, sheet_names = sheetnum_and_sheet_names(excel_url)if sheetname not in sheet_names:app = xw.App(visible=False, add_book=False)app.display_alerts = Falseapp.screen_updating = Trueif not os.path.exists(excel_url):  # 文件是否存在wb = app.books.add()else:wb = app.books.open(excel_url)wb.sheets.add(sheetname)wb.save()wb.close()app.kill()return excel_url
  • 功能:向指定的 Excel 文件中添加一个新的 Sheet。如果文件不存在,则先创建文件;如果 Sheet 已存在,则不添加。

  • 参数

    • excel_url:Excel 文件的路径。

    • sheetname:要添加的 Sheet 名称。

  • 返回值:返回 Excel 文件的路径。

  • 实现细节

    • 检查文件是否存在,如果不存在则调用 new_excel 函数创建文件。

    • 使用 sheetnum_and_sheet_names 函数获取当前文件的 Sheet 信息。

    • 如果指定的 sheetname 不在现有的 Sheet 列表中,则使用 xlwings 打开文件并添加新的 Sheet。

    • 保存并关闭工作簿,然后关闭 Excel 应用程序。

4.5 调用函数 new_sheet

new_sheet('temp_测试.xlsx', sheetname='1')
  • 功能:在文件 temp_测试.xlsx 中添加一个名为 1 的 Sheet。

  • 实现细节

    • 如果文件 temp_测试.xlsx 不存在,则先创建该文件。

    • 如果文件中不存在名为 1 的 Sheet,则添加该 Sheet。

5 另存为pdf

完整代码

import os
import logging
from win32com.client import DispatchExdef excel_to_pdf(from_xls, to_pdf, visible=False, overwrite=False):"""将 Excel 文件转换为 PDF 文件。:param from_xls: 输入的 Excel 文件路径。:param to_pdf: 输出的 PDF 文件路径。:param visible: 是否显示 Excel 应用程序界面,默认为 False。:param overwrite: 是否覆盖已存在的 PDF 文件,默认为 False。:return: 成功返回 True,失败返回 False。"""# 检查输入文件是否存在if not os.path.exists(from_xls):logging.error(f"输入文件不存在: {from_xls}")return False# 检查输出路径是否合法output_dir = os.path.dirname(to_pdf)if output_dir and not os.path.exists(output_dir):logging.error(f"输出路径不存在: {output_dir}")return False# 检查是否覆盖已存在的 PDF 文件if os.path.exists(to_pdf) and not overwrite:logging.error(f"输出文件已存在且未启用覆盖模式: {to_pdf}")return Falsetry:# 启动 Excel 应用程序app = DispatchEx("Excel.Application")app.Visible = visible  # 是否显示 Excel 界面app.DisplayAlerts = False  # 禁用警告提示# 打开 Excel 文件books = app.Workbooks.Open(os.path.abspath(from_xls))# 导出为 PDFbooks.ExportAsFixedFormat(0, os.path.abspath(to_pdf))  # 0 表示 PDF 格式logging.info(f"成功将 {from_xls} 转换为 {to_pdf}")# 关闭文件并退出应用程序books.Close(False)app.Quit()return Trueexcept Exception as e:logging.error(f"转换失败: {e}")return Falsefinally:# 确保 Excel 应用程序被关闭if 'app' in locals():app.Quit()# 配置日志
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")# 示例调用
from_xls = 'temp_测试.xlsx'
to_pdf = 'temp_测试.pdf'if excel_to_pdf(from_xls, to_pdf, visible=False, overwrite=True):print("转换成功!")
else:print("转换失败,请检查日志。")

5.1 导入模块

import logging
import os
from win32com.client import DispatchEx
  • logging:用于记录日志信息,方便跟踪程序运行状态和排查问题。

  • os:用于处理文件路径和检查文件是否存在。

  • win32com.client:用于调用 Windows 的 COM 接口,这里用于操作 Excel 应用程序。

    • DispatchEx:创建一个独立的 Excel 应用程序实例。

5.2 定义函数 excel_to_pdf

def excel_to_pdf(from_xls, to_pdf, visible=False, overwrite=False):"""将 Excel 文件转换为 PDF 文件。:param from_xls: 输入的 Excel 文件路径。:param to_pdf: 输出的 PDF 文件路径。:param visible: 是否显示 Excel 应用程序界面,默认为 False。:param overwrite: 是否覆盖已存在的 PDF 文件,默认为 False。:return: 成功返回 True,失败返回 False。"""
  • 功能:将指定的 Excel 文件转换为 PDF 文件。

  • 参数

    • from_xls:输入的 Excel 文件路径。

    • to_pdf:输出的 PDF 文件路径。

    • visible:是否显示 Excel 应用程序界面,默认为 False

    • overwrite:是否覆盖已存在的 PDF 文件,默认为 False

  • 返回值:成功返回 True,失败返回 False

5.3 检查输入文件是否存在

    # 检查输入文件是否存在if not os.path.exists(from_xls):logging.error(f"输入文件不存在: {from_xls}")return False
  • 使用 os.path.exists 检查输入的 Excel 文件是否存在。

  • 如果文件不存在,记录错误日志并返回 False

5.4 检查输出路径是否合法

    # 检查输出路径是否合法output_dir = os.path.dirname(to_pdf)if output_dir and not os.path.exists(output_dir):logging.error(f"输出路径不存在: {output_dir}")return False
  • 使用 os.path.dirname 获取输出文件的目录路径。

  • 如果目录路径存在且目录不存在,记录错误日志并返回 False

5.5 检查是否覆盖已存在的 PDF 文件

    # 检查是否覆盖已存在的 PDF 文件if os.path.exists(to_pdf) and not overwrite:logging.error(f"输出文件已存在且未启用覆盖模式: {to_pdf}")return False
  • 检查输出文件是否已存在。

  • 如果文件已存在且未启用覆盖模式,记录错误日志并返回 False

5.6 启动 Excel 应用程序并转换文件

    try:# 启动 Excel 应用程序app = DispatchEx("Excel.Application")app.Visible = visible  # 是否显示 Excel 界面app.DisplayAlerts = False  # 禁用警告提示# 打开 Excel 文件books = app.Workbooks.Open(os.path.abspath(from_xls))# 导出为 PDFbooks.ExportAsFixedFormat(0, os.path.abspath(to_pdf))  # 0 表示 PDF 格式logging.info(f"成功将 {from_xls} 转换为 {to_pdf}")# 关闭文件并退出应用程序books.Close(False)app.Quit()return True
  • 启动 Excel 应用程序

    • 使用 DispatchEx("Excel.Application") 创建一个独立的 Excel 应用程序实例。

    • 设置 app.Visible 控制是否显示 Excel 界面。

    • 设置 app.DisplayAlerts = False 禁用警告提示。

  • 打开 Excel 文件

    • 使用 Workbooks.Open 打开指定的 Excel 文件。

    • os.path.abspath 将相对路径转换为绝对路径。

  • 导出为 PDF

    • 使用 ExportAsFixedFormat 方法将 Excel 文件导出为 PDF。

    • 第一个参数 0 表示 PDF 格式(xlTypePDF)。

  • 关闭文件并退出应用程序

    • 使用 books.Close(False) 关闭 Excel 文件,参数 False 表示不保存更改。

    • 使用 app.Quit() 退出 Excel 应用程序。

5.7 异常处理

    except Exception as e:logging.error(f"转换失败: {e}")return Falsefinally:# 确保 Excel 应用程序被关闭if 'app' in locals():app.Quit()
  • 异常捕获

    • 捕获所有可能的异常,并记录错误日志。

    • 返回 False 表示转换失败。

  • 资源释放

    • 在 finally 块中确保 Excel 应用程序被关闭,避免资源泄漏。

5.8 示例调用

# 示例调用
from_xls = 'temp_测试.xlsx'
to_pdf = 'temp_测试.pdf'if excel_to_pdf(from_xls, to_pdf, visible=False, overwrite=True):print("转换成功!")
else:print("转换失败,请检查日志。")
  • 调用 excel_to_pdf 函数,将 temp_测试.xlsx 转换为 temp_测试.pdf

  • 根据返回值输出转换结果。

6 excel表打印

完整代码

# -*- coding: utf-8 -*-
# @Time    : 2022/3/12 14:08
# @Author  : AidenGuo
# @Software: PyCharmimport logging
import osimport xlwings as xwdef print_excel_sheet(save_path, printer_name='导出为WPS PDF'):"""打印 Excel 文件的指定区域。:param save_path: Excel 文件路径。:param printer_name: 打印机名称,默认为 'Black_print_SPDF'。:return: 成功返回 True,失败返回 False。"""# 检查文件是否存在if not os.path.exists(save_path):logging.error(f"文件不存在: {save_path}")return Falsetry:# 启动 Excel 应用程序app = xw.App(visible=False, add_book=False)app.display_alerts = False  # 禁用警告提示app.screen_updating = True  # 启用屏幕更新# 打开 Excel 文件wb = app.books.open(save_path)sht0 = wb.sheets[0]  # 获取第一个工作表# 打印指定区域 A1:I20,并设置打印份数和排序sht0.range('A1:I20').api.PrintOut(Copies=1,ActivePrinter=printer_name,Collate=True,PrintToFile=False  # 禁用“打印到文件”选项)# 保存并关闭工作簿wb.save()wb.close()logging.info(f"成功打印文件: {save_path}")return Trueexcept Exception as e:logging.error(f"打印失败: {e}")return Falsefinally:# 确保 Excel 应用程序被关闭if 'app' in locals():app.quit()# 配置日志
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")# 示例调用
if __name__ == "__main__":excel_file = 'temp_测试.xlsx'to_pdf = 'temp_测试.pdf'if print_excel_sheet(excel_file):print("打印成功!")else:print("打印失败,请检查日志。")

6.1 代码结构

6.1.1 导入模块

import logging
import os
import xlwings as xw
  • logging:用于记录日志信息,方便跟踪程序运行状态和排查问题。

  • os:用于检查文件是否存在。

  • xlwings:用于操作 Excel 文件,调用 Excel 的 API 实现打印功能。

6.1.2 定义函数 print_excel_sheet

def print_excel_sheet(save_path, printer_name='导出为WPS PDF'):"""打印 Excel 文件的指定区域。:param save_path: Excel 文件路径。:param printer_name: 打印机名称,默认为 '导出为WPS PDF'。:return: 成功返回 True,失败返回 False。"""
  • 功能:打印 Excel 文件的指定区域。

  • 参数

    • save_path:Excel 文件的路径。

    • printer_name:打印机名称,默认为 导出为WPS PDF

  • 返回值:成功返回 True,失败返回 False

6.2 函数实现

6.2.1 检查文件是否存在

    # 检查文件是否存在if not os.path.exists(save_path):logging.error(f"文件不存在: {save_path}")return False
  • 使用 os.path.exists 检查文件是否存在。

  • 如果文件不存在,记录错误日志并返回 False

6.2.2 启动 Excel 应用程序

    try:# 启动 Excel 应用程序app = xw.App(visible=False, add_book=False)app.display_alerts = False  # 禁用警告提示app.screen_updating = True  # 启用屏幕更新
  • 使用 xw.App 启动 Excel 应用程序。

    • visible=False:隐藏 Excel 界面。

    • add_book=False:不自动创建新工作簿。

  • 禁用警告提示和启用屏幕更新,以提高运行效率。

6.2.3 打开 Excel 文件

        # 打开 Excel 文件wb = app.books.open(save_path)sht0 = wb.sheets[0]  # 获取第一个工作表
  • 使用 app.books.open 打开指定的 Excel 文件。

  • 获取第一个工作表(sht0)。

6.2.4 打印指定区域

        # 打印指定区域 A1:I20,并设置打印份数和排序sht0.range('A1:I20').api.PrintOut(Copies=1,ActivePrinter=printer_name,Collate=True,PrintToFile=False  # 禁用“打印到文件”选项)
  • 使用 sht0.range('A1:I20').api.PrintOut 打印指定区域。

    • Copies=1:打印 1 份。

    • ActivePrinter=printer_name:指定打印机名称。

    • Collate=True:逐份打印。

    • PrintToFile=False:禁用“打印到文件”选项,避免弹出“文件名另存为”对话框。

6.2.5 保存并关闭工作簿

        # 保存并关闭工作簿wb.save()wb.close()logging.info(f"成功打印文件: {save_path}")return True
  • 保存工作簿并关闭。

  • 记录成功日志并返回 True

6.2.6 异常处理

    except Exception as e:logging.error(f"打印失败: {e}")return Falsefinally:# 确保 Excel 应用程序被关闭if 'app' in locals():app.quit()
  • 捕获所有异常,记录错误日志并返回 False

  • 在 finally 块中确保 Excel 应用程序被关闭,避免资源泄漏。

6.3 日志配置

# 配置日志
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
  • 配置日志级别为 INFO,日志格式包括时间、日志级别和消息。

6.4 示例调用

# 示例调用
if __name__ == "__main__":excel_file = 'temp_测试.xlsx'to_pdf = 'temp_测试.pdf'if print_excel_sheet(excel_file):print("打印成功!")else:print("打印失败,请检查日志。")
  • 调用 print_excel_sheet 函数,打印 temp_测试.xlsx 文件的指定区域。

  • 根据返回值输出打印结果。

6.5 打印机检查

在打印之前,可以检查本电脑全部打印机

import win32print
printers = win32print.EnumPrinters(2)  # 获取所有打印机
for printer in printers:print(printer[2])  # 打印打印机名称

检查所有打印机

7 后续

感谢各位阅读至此。本文系统介绍了Excel的四大基础操作:文件打开、工作簿/工作表创建、PDF格式导出以及打印设置。这些操作涵盖了日常办公的基本需求,能够有效提升工作效率。为便于读者实践,文末已附上相关操作的完整源码供参考。

通过网盘分享的文件:Python操作Excel全攻略系列(二):文件操作篇源码
链接: https://pan.baidu.com/s/1UZRQltsCMetCZp9tAVEWzg?pwd=1m7r 提取码: 1m7r

http://www.dtcms.com/wzjs/43906.html

相关文章:

  • 石家庄市官方网站网站排名掉了怎么恢复
  • 只会前端可以做动态网站吗新闻发稿平台有哪些?
  • 网站上面的在线咨询是怎么做的湖南关键词优化品牌价格
  • 社科院网站建设东莞seo整站优化
  • 临沂在线做网站哈尔滨网站优化
  • 深圳外贸网站建设工作室网店运营与管理
  • 网站开发涉及技术中国网评中国网评
  • 制作网站链接长沙seo排名外包
  • 推荐几个自学做衣服的网站百度指数特点
  • 网站开发语言是什么意思建站系统源码
  • 找网站开发公司需要注意那几点点击排名软件哪个好
  • 潍坊 网站建设今日头条新闻最全新消息
  • 搜索网站logo怎么做推广有奖励的app平台
  • 301 网站 怎么做今日头条郑州头条新闻
  • 番禺网站建设优化推广链接生成器在线制作
  • 企业微信公众号怎么创建济南网络优化哪家专业
  • 武进区建设局网站百度认证营销推广师
  • 南海区建设局网站引流客户的最快方法是什么
  • 一个新网站怎么做seo百度搜索关键词设置
  • 用微软雅黑做网站可以吗关键词是怎么排名的
  • 大连 商城网站制作公司百度投诉中心24小时电话
  • 网站开发需要的工具凡科网站官网
  • 可做装饰推广的网站百度小程序
  • 潍坊网站建设兼职168推广网
  • 网站突然不收录2017seo关键词优化排名外包
  • 建设银行交易明细查询网站百度搜索开放平台
  • 网站建设意义口碑营销的例子
  • uc浏览器网页版网络推广关键词优化公司
  • 电商服务站点建设方案网站和网页的区别
  • 电脑版网站建设搜索引擎关键词的工具