我有两个python文件:
1- writerCode.py:
import xlsxwriter
workbook = xlsxwriter.Workbook('demo.xlsx')
ws = workbook.add_worksheet()
def writeTo(x,y,array):
j = 0
while j < (len(array)):
ws.write(x,y,array[j])
j +=1
x +=1
return;
workbook.close()
2- testingCode.py:
from writerCode import *
an = ['123','234','123','432','123']
writeTo(0,0,an)
我想导入一个[]项目到excel。
当我运行 testingCode.py 时,它会创建"demo.xlsx",其中没有任何内容。Excel 文件为空,这意味着它不会按预期将 an[] 导入到 excel 文件。
我想知道是否有人知道问题是什么?
问题不在于"使用另一个文件中的函数">
Excel 文件为空,这意味着它不会按预期将 an[] 导入到 excel 文件。
这也可能意味着控制 Excel 的代码部分不起作用。
test2.py:
def mydef(d):
print(d)
test.py:
from test2 import *
data = "hello"
mydef(data)
结果在
hello
所以不是那样。
可能是您在打开工作簿后立即关闭了工作簿。除函数外,所有代码都在导入时运行。
丑陋的快速修复(重组代码(:
workbook.close()
打电话给writeTo()
.
xlsxwriter
应该在写入已关闭的工作簿/工作表时引发异常,但它不会:
import xlsxwriter
workbook = xlsxwriter.Workbook('demo.xlsx')
ws = workbook.add_worksheet()
workbook.close()
ws.write(0,0,"hello")
确实会生成一个有效的 XSLX 文件,而单元格中没有数据。
您正在尝试导入
testingCode.py
中关闭的工作簿,无法写入已关闭的工作簿。
因此,请将workbook.close()
替换为testingCode.py
。这样,您将在调用函数 writeTo(x, y, array)
后关闭工作簿。
并尝试使用for
循环,因为循环while
但会使您的代码看起来有点复杂。并通过在,
后添加空格来使您的代码看起来整洁。这些空格使代码更具可读性。
def writeTo(x, y, array):
for item in (array):
ws.write(x, y, item)
x += 1