将PDF转换为Word:
convert_pdf_to_docx
函数接受PDF文件路径和输出的Word文档路径作为参数。convert
方法将PDF转换为Docx格式。close
方法关闭Converter对象并保存转换后的文档。将Word转换为Excel:
替换Excel中的数据:
将Excel转换为Word:
将Word转换为PDF:
④批量处理更换
#pdf 转 word
from pdf2docx import Converter
def convert_pdf_to_docx(pdf_path, docx_path):
cv = Converter(pdf_path)
cv.convert(docx_path, start=0, end=None)
cv.close()
if __name__ == '__main__':
pdf_path = 'C:/Users/wangkejun/Desktop/1/结果1.pdf' # 输入的 PDF 文件路径
docx_path = 'C:/Users/wangkejun/Desktop/1/结果2.docx' # 输出的 Word 文档路径
convert_pdf_to_docx(pdf_path, docx_path)
print('转换完成!')
# word 转 excel
import docx
from openpyxl import Workbook
# 打开 Word 文档
doc = docx.Document(r'C:/Users/wangkejun/Desktop/1/结果2.docx')
# 创建一个新的 Excel 文件
workbook = Workbook()
sheet = workbook.active
# 遍历 Word 文档中的表格
for table in doc.tables:
for row in table.rows:
# 按行遍历表格并将内容写入 Excel 文件
data = []
for cell in row.cells:
data.append(cell.text)
sheet.append(data)
# 保存 Excel 文件
workbook.save(r'C:/Users/wangkejun/Desktop/1/结果3.xlsx')
import os
from openpyxl import load_workbook
def replace_data_in_excel(input_file, output_folder):
# 加载输入的 Excel 表
wb = load_workbook(input_file)
sheet = wb.active
# 获取原始数据
data = []
for row in sheet.iter_rows(values_only=True):
data.append(list(row))
# 替换数据
for i in range(1, 39):
# 复制原始数据
new_data = [row[:] for row in data]
# 替换特定位置的数据
new_data[1][1] = f"{i}/38"
# 创建新的 Excel 表
new_wb = load_workbook(input_file)
new_sheet = new_wb.active
# 更新新的 Excel 表的数据
new_sheet.delete_rows(1, new_sheet.max_row)
for row in new_data:
new_sheet.append(row)
# 保存新的 Excel 表
output_file = os.path.join(output_folder, f"{i}.xlsx")
new_wb.save(output_file)
print("生成完成!")
if __name__ == '__main__':
input_file = r'C:/Users/wangkejun/Desktop/1/结果3.xlsx' # 输入的 Excel 表路径
output_folder = r'C:/Users/wangkejun/Desktop/1' # 输出的文件夹路径
replace_data_in_excel(input_file, output_folder)
#excel 转 word
import os
import openpyxl
from docx import Document
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT, WD_ALIGN_VERTICAL
def convert_excel_to_word(input_folder, output_folder):
# 遍历输入文件夹下的所有 Excel 文件
for file_name in os.listdir(input_folder):
if file_name.endswith('.xlsx') or file_name.endswith('.xls'):
# 构造输出文件路径
output_file = os.path.join(output_folder, f"{file_name.split('.')[0]}.docx")
# 创建一个新的 Word 文档
doc = Document()
# 打开 Excel 文件
file_path = os.path.join(input_folder, file_name)
workbook = openpyxl.load_workbook(file_path)
sheet = workbook.active
# 在 Word 文档中创建一个表格
table = doc.add_table(rows=1, cols=sheet.max_column)
table.autofit = False
# 设置表格样式
table.style = 'Table Grid'
# 将 Excel 单元格数据写入 Word 表格
for row in sheet.iter_rows(values_only=True):
new_row = table.add_row().cells
for i, cell_value in enumerate(row):
new_row[i].text = str(cell_value)
# 调整单元格样式
for row in table.rows:
for cell in row.cells:
cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER
cell.paragraphs[0].paragraph_format.alignment = WD_ALIGN_VERTICAL.CENTER
# 保存 Word 文档
doc.save(output_file)
print("转换完成!")
if __name__ == '__main__':
input_folder = r'C:/Users/wangkejun/Desktop/1/excel' # 输入的文件夹路径
output_folder = r'C:/Users/wangkejun/Desktop/1/word' # 输出的 Word 文件夹路径
convert_excel_to_word(input_folder, output_folder)
# #word 转 pdf
from docx2pdf import convert
import os
def batch_word_to_pdf(input_folder, output_folder):
# 遍历输入文件夹下的所有 Word 文件
for file_name in os.listdir(input_folder):
if file_name.endswith('.docx'):
# 构造输出文件路径
output_file = os.path.join(output_folder, f"{file_name.split('.')[0]}.pdf")
# 调用 docx2pdf 库的 convert 函数将 Word 文档转换为 PDF
convert(os.path.join(input_folder, file_name), output_file)
print("转换完成!")
if __name__ == '__main__':
input_folder = r'C:/Users/wangkejun/Desktop/1/word' # 输入的文件夹路径
output_folder = r'C:/Users/wangkejun/Desktop/1/pdf' # 输出的 PDF 文件夹路径
batch_word_to_pdf(input_folder, output_folder)