Python脚本:从给定网址提取Excel工作表并保存到本地
以下是一个简单的Python脚本,可以实现您的需求:
import requests
import openpyxl
# 定义网址和工作表编号
url = 'https://example.com/workbook.xlsx'
sheet_number = 9
# 定义要保存到的本地路径
local_path = 'C:/Users/username/Desktop/workbook.xlsx'
# 发送请求并下载工作簿
response = requests.get(url)
with open('workbook.xlsx', 'wb') as f:
f.write(response.content)
# 打开工作簿并保存第9个工作表到本地路径
workbook = openpyxl.load_workbook('workbook.xlsx')
sheet = workbook.worksheets[sheet_number - 1]
sheet.title = 'Sheet1' # 将工作表重命名为“Sheet1”,以便在保存时显示
workbook.save(local_path)
# 删除下载的工作簿
import os
os.remove('workbook.xlsx')
请注意,这个脚本假定工作簿是一个.xlsx文件。如果您的工作簿是.xls文件,您需要使用xlrd库而不是openpyxl库打开工作簿,如下所示:
import requests
import xlrd
import xlwt
# 定义网址和工作表编号
url = 'https://example.com/workbook.xls'
sheet_number = 9
# 定义要保存到的本地路径
local_path = 'C:/Users/username/Desktop/workbook.xls'
# 发送请求并下载工作簿
response = requests.get(url)
with open('workbook.xls', 'wb') as f:
f.write(response.content)
# 打开工作簿并保存第9个工作表到本地路径
workbook = xlrd.open_workbook('workbook.xls')
sheet = workbook.sheet_by_index(sheet_number - 1)
workbook_out = xlwt.Workbook()
sheet_out = workbook_out.add_sheet('Sheet1')
for row in range(sheet.nrows):
for col in range(sheet.ncols):
sheet_out.write(row, col, sheet.cell_value(row, col))
workbook_out.save(local_path)
# 删除下载的工作簿
import os
os.remove('workbook.xls')
请注意,这个脚本假定工作簿只有一个工作表。如果您的工作簿有多个工作表,您需要根据需要修改代码。
原文地址: https://www.cveoy.top/t/topic/ofIY 著作权归作者所有。请勿转载和采集!