Excel-Tabelle zu JSON mit zusätzlichen Feldern aus anderen Tabellen

554
Prajakta Software

Ich hatte das Speichern von Excel- Tabellen als JSON-Datei durchlaufen, was mir half, die EXCEL-Tabelle in JSON zu konvertieren, aber ich möchte dieser JSON-Datei einige zusätzliche Felder hinzufügen.

Excel-Tabelle zu JSON mit zusätzlichen Feldern aus anderen Tabellen

Ich frage folgende Informationen im ersten Arbeitsblatt

  1. Ihre ID: A001
  2. Name: Mein Name
  3. Listeneintrag: Okt-2018

[ Mein 2. Blatt ]

Diese Informationen sind für Daten, die im 2. Blatt eingegeben werden, üblich


Beim Erstellen der JSON-Datei möchte ich "automatisch" die folgenden 3 Felder (in Blatt 1 akzeptiert) in jedem Datensatz für JSON, den ich aus Sheet2 erstellt habe, hinzufügen

  1. Ihre ID: A001
  2. Name: Mein Name
  3. Listeneintrag: Okt-2018

Ich verwende folgenden VBA-Code, um JSON zu erstellen

Public Sub xls2json() savename = "xls2json.json" Dim wkb As Workbook Dim wks As Worksheet Set wkb = ThisWorkbook Set wks = wkb.Sheets(2) lcolumn = wks.Cells(4, Columns.Count).End(xlToLeft).Column lrow = wks.Cells(Rows.Count, "A").End(xlUp).Row Dim titles() As String ReDim titles(lcolumn) For i = 1 To lcolumn titles(i) = wks.Cells(4, i) 'titles are taken from this row Next i json = "[" dq = """" For J = 5 To lrow ' data picked from this row onwards For i = 1 To lcolumn If i = 1 Then json = json & "{" End If cellvalue = wks.Cells(J, i) json = json & dq & titles(i) & dq & ":" & dq & cellvalue & dq If i <> lcolumn Then json = json & "," End If Next i json = json & "}" If J <> lrow Then json = json & "," End If Next J json = json & "]" myFile = Application.DefaultFilePath & "\" & savename Open myFile For Output As #1 Print #1, json Close #1 a = MsgBox("Saved as " & savename, vbOKOnly) End Sub 
0
Es ist nicht wirklich klar, worauf wir schauen. Was ist das Originalarbeitsblatt? Die Beschreibung von Sheet2 ist kreisförmig. Wo werden die Daten feldweise hinzugefügt? Wie sollte die resultierende Datei aussehen? Warum nicht einfach die Felder in Excel hinzufügen und dann in JSON konvertieren? Was genau ist die Schwierigkeit, dich aufzuhalten? fixer1234 vor 5 Jahren 1

1 Antwort auf die Frage

-1
Krishna

Soweit ich weiß, haben Sie JSON-Dateien für sheel1 und sheet2 und möchten Spalten von sheet2 zu sheet1 hinzufügen. Etwas wie unten.

0 > cat file1.json [ { "firstName": "Alice", "age": 22 }, { "firstName": "Bob", "age": 33 } ] 0 > cat file2.json [ { "fullName": "Alice Alice" }, { "fullName": "Bob Bob" } ] 

um etwas zu bekommen wie ...

0 > python3 ./bla.py file1.json file2.json [ { "firstName": "Alice", "age": 22, "fullName": "Alice Alice" }, { "firstName": "Bob", "age": 33, "fullName": "Bob Bob" } ] 

Der folgende Python-Code sollte funktionieren

import json, sys   def main(): '''The Main'''  data1 = json.load(open(sys.argv[1])) data2 = json.load(open(sys.argv[2]))  assert (len(data1) == len(data2)), "Number of rows not equal"  for i in range(len(data1)): for k in data2[i].keys(): data1[i][k] = data2[i][k]  print(json.dumps(data1, indent=4))   if __name__ == '__main__': main() 

HTH

Krishna

Was Sie abschließen, ist zu 100% korrekt. Ich verwende VBA-Code Prajakta Software vor 5 Jahren 1