简体   繁体   English

用 python 覆盖 XLSX 中的数据

[英]Overwriting data in XLSX with python

Let's assume an excel file mismatch.xlsx at a particular location in C: drive让我们假设 excel 文件 mismatch.xlsx 在 C 的特定位置:驱动器

what I want to do is first check if it exists, and if it does I want to clear all the data in it and write new data into it我要做的是首先检查它是否存在,如果存在我想清除其中的所有数据并将新数据写入其中

if it does not exist at all I would like to create a new file "mismatch.xlsx" at a particular location and write data into it如果它根本不存在,我想在特定位置创建一个新文件“mismatch.xlsx”并将数据写入其中

so far I am able to create a new file "mismatch.xlsx" and write into it but if I run the program again, I get permission denied error到目前为止,我能够创建一个新文件“mismatch.xlsx”并写入其中,但如果我再次运行该程序,我会收到权限被拒绝错误

this is my code to write data into "mismtach.xlsx"(i have used xlsxwriter), I am assuming the solution to this is a simple 'if' loop to check for file existence, but I am new to python and I am not sure how to declare that.这是我将数据写入“mismtach.xlsx”的代码(我使用过 xlsxwriter),我假设解决方案是一个简单的“if”循环来检查文件是否存在,但我是 python 的新手,我不是确定如何声明。

with xlsxwriter.Workbook('<location>/mismtach.xlsx') as workbook:
           worksheet = workbook.add_worksheet()
           worksheet2 = workbook.add_worksheet()
           worksheet3 = workbook.add_worksheet()
           
           for row_num , data in enumerate(mismatch_true):
                worksheet.write_row(row_num, 0, data)  
           for row_num2 , data2 in enumerate(semi):
                worksheet2.write_row(row_num2, 0, data2) 
           for row_num3 , data3 in enumerate(quarter):
               worksheet3.write_row(row_num3, 0, data3) 

ERROR: xlsxwriter.exceptions.FileCreateError: [Errno 13] Permission denied: '(location)/mismtach.xlsx'错误:xlsxwriter.exceptions.FileCreateError:[Errno 13] 权限被拒绝:'(位置)/mismtach.xlsx'

Does this meet what you are after?这符合你的追求吗?

import os
import xlsxwriter

# Excel File Name
xlfile = "mismtach.xlsx"

# Excel File Exits Then Remove
if os.path.exists(xlfile):
    os.remove(xlfile)

# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook(xlfile)
worksheet = workbook.add_worksheet()
worksheet2 = workbook.add_worksheet()
worksheet3 = workbook.add_worksheet()

# Iterate over the data and write it out row by row.
(your data)

# Close Workbook.
workbook.close(xlfile)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM