Скопировать большое количество данных определенного формата / шаблона из одного файла Excel в другой файл Excel с другим шаблоном данных? - PullRequest
0 голосов
/ 17 мая 2019

Я хочу Скопировать некоторые данные (определенного шаблона ) из одного файла Excel, а затем Вставить эти данные в другой файл Excel, но в другой шаблон .Я также хочу пропустить определенное количество строк из исходного файла по определенному шаблону (скопировать данные из 5 строк, затем пропустить следующие 5 строк, затем скопировать данные из следующих 5 строк и пропустить следующие 5 строк и т. Д.).Мой исходный файл содержит около 80 000 строк , поэтому копирование вручную с помощью простого копирования и вставки с помощью щелчков мыши является очень медленной процедурой и занимает много времени.Скажите, пожалуйста, что такое код макроса VBA для этой конкретной проблемы, при которой все эти данные автоматически копируются в соответствии с критериями.Спасибо!

Это изображение обоих файлов, объясняющее критерии копирования / вставки: https://drive.google.com/open?id=1wVjIfPSFkoSPw08rzVPdzqluKGynNKKT

1 Ответ

0 голосов
/ 22 мая 2019

Я решил проблему. Спасибо всем, кто дал отрицательный отзыв бесплатно .Если вы не можете оставлять хорошие комментарии, по крайней мере, не размещайте плохие комментарии. Самая простая задача - кого-то критиковать.

Кстати, если у кого-то есть проблемы такого типа, то это простой код решения, написанный мной на Python:

import csv

#loading Source CSV file and parse it into list of integer numbers
with open('Source.csv', 'r') as csvfile:
    scr_data_list = []
    for row in csv.reader(csvfile, delimiter=','):
        scr_data_list.append(row[0]) # careful here with [0]
csvfile.close()

#print scr_data_list
#print "\n"

temp_scr_list = []  # temp list to store 5 values from Source list
temp_des_list = []  # temp list to store 9 numbers drived from "temp_scr_list"
des_data_list = []   # Destination List contaning whole data
step = 5
i = 0
while i < len(scr_data_list):

    j = 0
    while j <5:
        temp_scr_list.append(float(scr_data_list[i+j]))
        j = j+1

    # Main logic of this program
    #print temp_scr_list

    temp_des_list.append(temp_scr_list[2]) # value at -20 offset
    temp_des_list.append(temp_scr_list[2]+0.05) # value at -14 offset (derived)
    temp_des_list.append(temp_scr_list[1]-0.2) # value at -10 offset (derived)
    temp_des_list.append(temp_scr_list[1]) # value at -5 offset

    temp_des_list.append(temp_scr_list[0]) # value at 0 offset

    temp_des_list.append(temp_scr_list[3]) # value at 5 offset
    temp_des_list.append(temp_scr_list[3]-0.2) # value at 10 offset (derived)
    temp_des_list.append(temp_scr_list[4]+0.05) # value at 14 offset (derived)
    temp_des_list.append(temp_scr_list[4]) # value at 20 offset

    des_data_list.extend(temp_des_list)

    # step 5 values forward
    i=i+5


    # clear the lists
    temp_scr_list = []
    temp_des_list = []  

print len(des_data_list)


# write the numbers from "des_data_list" list to a CSV file
with open('Destination.csv', 'wb') as writeFile:
    for r in des_data_list:
        writeFile.write(str(r) + "\n")


writeFile.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...