从文本文件中传递字符串时,如何使用本地变量?
我正在使用XLSXWriter来构建Excel表。我想拥有一个文本文件,其中包含我可以迭代的公式。
我希望formaula_line
不用写formula_line
,而是要拾取row_as_as_str
在将公式写入输出之前完成公式。xlsx因为它是从文件formulas.txt
import xlsxwriter
with xlsxwriter.Workbook('output.xlsx') as workbook:
worksheet = workbook.add_worksheet('Sheet 1')
col = 0
# Read and loop through formulas.txt
with open('formulas.txt', 'r') as formula_file:
for formula_line in formula_file:
row = 0
for row in range(1,5):
row_as_str = str(row)
worksheet.write(row, col, formula_line)
col += 1
公式
"=ROUND(K" + row_as_str + "*M" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*N" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*O" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*P" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*Q" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*R" + row_as_str + ",2)"
中获取的,因此它不需要是文本文件。
我找到了解决方案
import xlsxwriter
with xlsxwriter.Workbook(r'output2.xlsx') as workbook:
worksheet = workbook.add_worksheet('Sheet 1')
col = 0
# Reading from formula file
counter = 5
with open('formulas.txt', 'r') as formula_file:
for formula_line in formula_file:
row = 0
for row in range(1, 5):
row_num_str = str(row)
row_as_str = ("\" + row_as_str + \"")
formula = formula_line.replace(row_as_str, row_num_str)
worksheet.write_formula(row, col, formula)
col += 1
I'm using xlsxwriter to build an excel sheet. I'd like to have a text file that contains formulas I can iterate through.
Instead of writing the formula_line
to output.xlsx, I want formula_line
to pick up row_as_str
to complete the formula before it is written to output.xlsx as it is taken from the file formulas.txt
import xlsxwriter
with xlsxwriter.Workbook('output.xlsx') as workbook:
worksheet = workbook.add_worksheet('Sheet 1')
col = 0
# Read and loop through formulas.txt
with open('formulas.txt', 'r') as formula_file:
for formula_line in formula_file:
row = 0
for row in range(1,5):
row_as_str = str(row)
worksheet.write(row, col, formula_line)
col += 1
formulas.txt
"=ROUND(K" + row_as_str + "*M" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*N" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*O" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*P" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*Q" + row_as_str + ",2)"
"=ROUND(K" + row_as_str + "*R" + row_as_str + ",2)"
It does not need to be a text file.
I FOUND THE SOLUTION
import xlsxwriter
with xlsxwriter.Workbook(r'output2.xlsx') as workbook:
worksheet = workbook.add_worksheet('Sheet 1')
col = 0
# Reading from formula file
counter = 5
with open('formulas.txt', 'r') as formula_file:
for formula_line in formula_file:
row = 0
for row in range(1, 5):
row_num_str = str(row)
row_as_str = ("\" + row_as_str + \"")
formula = formula_line.replace(row_as_str, row_num_str)
worksheet.write_formula(row, col, formula)
col += 1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论