2016-04-19 4 views
0

Als Titel einzufügen, habe ich eine Excel-Datei unter Daten wie Foto enthalten, enter image description hereWie deplicated Zeilen basierend auf den Werten der spezifischen Zellen in einer Spalte

Jetzt möchte ich basierend auf Daten in Spalte C die Datei bearbeiten (Zahlen kommen spät):

I basierend jede Zeile in der Datei kopieren möchten, auf ihre Werte in Spalte C, und legen sie sie knapp unter dem ursprünglichen Datensatz, wie unten auf dem Foto gezeigt,

enter image description here

Das heißt, daß die Zahlen des Kopierens ist abhängig von Werten in Spalte C:

Tom spät 2 mal kam, so möchte ich insgesamt 2 Reihen seiner Plattenfirma,

Jack spät einmal kam gerade , sein Datensatz bleibt einmal (Zeile),

Jane kam 3 Mal spät, ich möchte, dass es insgesamt 3 Reihen ihrer Aufzeichnung sein würde.

Wie konnte ich das erreichen? Kann ich das einfach mit Excel selbst machen oder sollte ich andere Computersprachen wie Python benutzen? Bitte geben Sie mir einen Rat, danke.

+0

'Wie könnte ich das erreichen?' Ziemlich einfach, wenn Sie darüber nachdenken. – findwindow

Antwort

0

Wenn Sie Python verwenden möchten, liest dies Ihre CSV-Datei, schreibt in eine temporäre Datei und überschreibt die ursprüngliche Datei am Ende. Der Code dafür ist von https://stackoverflow.com/a/16020923/2766903
geliehen Sie müssen nur jede Zeile 1 Mal pro Anzahl von kommen spät schreiben.

from tempfile import NamedTemporaryFile 
import shutil 
import csv 

filename = 'path-to-excel-file.csv' 
tempfile = NamedTemporaryFile(delete=False) 

with open(filename, 'rb') as csvFile, tempfile: 
    reader = csv.reader(csvFile, delimiter=',', quotechar='"') 
    writer = csv.writer(tempfile, delimiter=',', quotechar='"') 

    for row in reader: 
     late_count = int(row['Numbers of coming late']) 
     for i in range(0, late_count): 
      writer.writerow(row) 

shutil.move(tempfile.name, filename) 
Verwandte Themen