我正在使用openpyxl将一些数据复制到我的Excel工作表中,然后从另一个工作表中读取一些数据。第二张工作表具有链接到第一张工作表的公式。当我尝试使用data_only=True
选项阅读第二张纸时,我无法恢复这些值。我只是得到None而不是值。我认为这是因为我正在使用openpyxl保存excel文件。
在excel文件的 Input 工作表中编写的代码:
from openpyxl import load_workbook
matched_airfoil_cos = np.load('airfoil_cos.npy')
wb = load_workbook('blockMeshDictGenerator_v3.xlsx')
ws = wb['Input']
shift = 9
for index, data in enumerate(matched_airfoil_cos):
ws.cell(row=index+shift, column=1).value = data[0]
ws.cell(row=index+shift, column=2).value = data[1]
wb.save('blockMeshDictGenerator_v4.xlsx')
从Excel文件的 blockMesh 表读取的代码
import openpyxl
import csv
wb = openpyxl.load_workbook('blockMeshDictGenerator_v4.xlsx',data_only=True)
sh = wb['blockMesh']
print(sh['C27'].internal_value)
with open('test.csv', 'w') as f:
c = csv.writer(f)
for r in sh.rows:
c.writerow([cell.value for cell in r])
我也尝试了xlrd库。但是,甚至脐带库也没有给我提供帮助。
我的最终目标是将 blockMesh 表中的值存储到文本文件中,为此,我可以使用pandas read_csv
函数。
任何帮助表示赞赏。谢谢。
答案 0 :(得分:0)
您需要将新文件通过无头LibreOffice之类的应用程序传递,以便为您计算公式的结果,然后可以使用纯数据模式。
此外,请使用ws.iter_rows(min_row=shift+1, min_col=1, max_col=2)
避免使用您自己的计数器。