Der Code zieht und setzt dann die Excel-Formeln und nicht die berechneten Daten der Formel.Excel-Formeln beim Exportieren von Daten mit Python vorberechnen?
xxtab.write(8, 3, "=H9+I9")
Wenn dies in und in dieser separaten Datei gespeichert gelesen wird, wird es als „= H9 + I9“ und nicht der tatsächliche Wert dessen, was H9 + gespeichert I9 ist. Dann, wenn wir es zurück importieren, berechnet es immer noch nicht, was H9 + I9 tatsächlich ist, sondern stattdessen fügt es einfach "= H9 + I9" in Excel ein.
Das beabsichtigte Ziel besteht darin, die Mathematik entweder während des Exports auszuführen, nachdem es exportiert wurde, aber bevor es in eine andere Datei importiert wird, oder während des Imports.
Der Code sollte nicht einfach eine andere mathematische Funktion/Formel in das nächste Excel-Blatt einfügen. Es sollte eine Antwort auf alles geben, was gelesen wurde.
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()
Sorry, ich bin neu in Stack Overflow. Ich weiß nicht, wie ich diese Frage sonst noch beschreiben soll. Ich weiß nicht, wie ich bekommen soll, was ich will, ich weiß nur, was ich will, wird mit dem, was ich geschrieben habe, nicht erreicht.
Das macht nicht viel Sinn, und Sie haben nicht viel (irgendwelchen?) Tatsächlichen Code zur Verfügung gestellt. Bitte überlege, [Fragestellung] (http://stackoverflow.com/questions/ask) nachzulesen und stelle [MCVE] (http://stackoverflow.com/help/mcve) bereit. –
Wenn ich Daten aus Excel lese, bekomme ich den "Zellenwert", der in die Zelle eingegeben wurde, was zufällig die Formeln sind. Was ich lesen muss, ist, was die Formel berechnet. Wenn die Formel also zwei Zahlen, zwei Zellen, einen Bereich oder was auch immer hinzufügt, brauche ich, was die angezeigte Antwort ist, nicht die Formel. Ich hoffe, das macht alles klar. –
Wieder wäre es hilfreich, wenn Sie Ihren * tatsächlichen Code * oder eine vernünftige Annäherung davon gezeigt hätten. Wie liest du die Werte ein? Antworte mir hier nicht in den Kommentaren, geh zurück und bearbeite (http://stackoverflow.com/posts/40248564/edit) deine Frage, um diese (nützlichen) Details aufzunehmen. –