Код тянет, а затем помещает формулы excel, а не рассчитанные данные формулы.Предварительно вычислять формулы Excel при экспорте данных с помощью python?
xxtab.write(8, 3, "=H9+I9")
Когда считывается и хранится в этом отдельном файле, он хранится в виде «= Н9 + I9», а не фактическое значение того, что H9 + I9 есть. Затем, когда мы импортируем его обратно, он все еще не вычисляет то, что на самом деле H9 + I9, но вместо этого он просто переставляет «= H9 + I9» в excel.
Целью является то, чтобы математика была выполнена либо во время экспорта, после ее экспорта, а перед импортом в другой файл или во время импорта.
Код не должен просто размещать другую математическую функцию/формулу на следующем листе excel. Это должно быть ответ на все, что читается.
import xlsxwriter, string, csv, time, datetime, subprocess, os
import urllib, urllib2, requests, openpyxl, sys
import gspread
# grab files
workbook = '/path/to/the/WorkBook.xlsx'
# Setup the spreadsheet
print "Creating workbook"
book = xlsxwriter.Workbook(workbook, {'strings_to_numbers': True})
# set matrix
row = 0 # row number
col = 0 # Column letter A=0 B=1 C=2 D=3...Z=26 ect.
# var.write(row, col, value, format)
# Make the sheet
xxtab = book.add_worksheet('DB Tables')
#Example of some .write commands which write to xxtab. The variables are taken directly from excel and are being read in by xlsl reader. This is stored in another file and is read in by the for loop.
xxtab.write(8, 1, "T_ACCESSRULES")
xxtab.write(8, 3, "=H9+I9")
xxtab.write(8, 7, "=data_dbmetrics!B56")
# The for loop, reads in a .txt file and does multiple .write commands
with open('/path/to/my/file/interns_xxtables.txt', 'rb') as f:
reader = csv.reader(f, delimiter='\t')
for c, col in enumerate(reader):
if(len(col) > 3):
if (str(col[3]) == "bold"):
xxtab.write(int(col[0]), int(col[1]), col[2], bold)
elif (col[3] == "metric"):
xxtab.write(int(col[0]), int(col[1]), col[2], metric)
elif (col[3] == "title"):
xxtab.write(int(col[0]), int(col[1]), col[2], title)
else:
xxtab.write(int(col[0]), int(col[1]), col[2])
f.close()
Извините, я новичок в переполнении стека. Я не знаю, как еще описать этот вопрос. Я не знаю, как получить то, что я хочу, я просто знаю, чего я хочу, не достигается тем, что я написал.
Это не имеет большого смысла, и вы не предоставили много (никакого?) Фактического кода для продолжения. Пожалуйста, рассмотрите вопрос о [Как спросить] (http://stackoverflow.com/questions/ask) и предоставите [MCVE] (http://stackoverflow.com/help/mcve). –
Когда я читаю данные из Excel, я получаю «значение ячейки», которое есть все, что было напечатано в ячейке, что является формулой. То, что мне нужно прочитать, - это то, что вычисляет формула. Поэтому, если формула добавляет два числа, две ячейки, диапазон или что-то еще, мне нужен то, что отображаемый ответ, а не формула. Надеюсь, это прояснит ситуацию. –
Опять же, было бы полезно, если бы вы показали свой * фактический код * или некоторую разумную аппроксимацию. Как вы «читаете» значения? Не отвечайте мне здесь в комментариях, вернитесь и [edit] (http://stackoverflow.com/posts/40248564/edit) свой вопрос, чтобы включить эти (полезные) детали. –