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

c2c网站建设的需求分析徐州网站设计

c2c网站建设的需求分析,徐州网站设计,一个公司可以做几个网站备案,网站建设实例教程目录 系列文章 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/374982.html

相关文章:

  • 做网站电脑配置要求个高吗成功营销案例100例
  • 给个人建网站的公司湖南seo博客seo交流
  • 俱乐部网站方案手机游戏性能优化软件
  • 外贸网站建设模式seo是什么意思中文翻译
  • 国家城乡建设委员会官方网站今日热点新闻事件摘抄
  • 建设部网站公示公告安全百度行发代理商
  • 静态做网站公司网络优化方案
  • 萍乡市建设局网站王丽长沙关键词优化公司电话
  • 网站建设专家评审意见自己怎么做网址
  • 网站怎么做百度商桥软文写作的三个要素
  • 网站制作 沈阳百度网盘搜索
  • 制作网站教学在哪里做推广效果好
  • 重庆网站制作和推广公司培训机构有哪些
  • 网站首页怎么设计seo外链推广员
  • 网络门店管理系统登录seo管理与优化期末试题
  • 长春建筑网站大的网站建设公司
  • 模拟创建一个公司站内seo和站外seo区别
  • 客户做网站一定报价怎么办我是站长网
  • vue单页面做网站加载慢关键词排名靠前
  • b2c网站建设平台什么是搜索引擎营销
  • 纯文字网站设计建个网站需要多少钱
  • 衢州网站建设企业海淀网站建设公司
  • 网站可分为哪两种类型seo优化对网店的推广的作用为
  • 手机网站开发环境百度旗下13个app
  • 香山红叶建设有限公司网站寻找郑州网站优化公司
  • 做擦边球的网站苏州吴中区seo关键词优化排名
  • 交互设计好的网站web成品网站源码免费
  • php做动态网站如何修改密码新手做销售怎么开发客户
  • wordpress中目录如何表示优化关键词软件
  • 廊坊网站制作推广网络营销相关的岗位有哪些