Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2011, 21:04   #1
We1ss
Новичок
Джуниор
 
Регистрация: 19.10.2011
Сообщений: 2
По умолчанию Импорт данных их файлов *.csv в шаблон Excel

Добрый день, форумчане.

Есть довольно объемная задача по импорту данных из нескольких файлов *.csv в шаблон Excel. Обращаюсь к вам за советом, как правильно "есть слона по частям" в ней (постараюсь все описать очень подробно, поэтому букв многовато):
Исходные данные
1. Несколько файлов в формате *.csv.
2. Шаблон Excel (книга, содержащая несколько листов с нужным форматированием ячеек и заголовками).
Желаемый результат
Перенести данные из csv-шек в шаблон (логично, черт возьми =) ), не меняя форматирования и типов ячеек. При этом желательно сразу конвертировать отдельные листы в pivot tables с cоответствующими им pivot charts (естественно, все условия для этого будут выполнены).
Комментарии/описание
Каждую csv-шку планируется переносить на свой лист. Формат представления данных на листах сильно различается, например, на отдельных листах заголовки расположены вертикально и подразумевают лишь одно значение, пример ниже:
Имя: ххх
Фамилия: ууу
Должность: zzz

На некоторых же листах мы вставляем данные в "классическую" таблицу. То есть фактически нужно при импорте указывать, в какую ячейку (на каком листе) какие значения при импорте вставлять.
Формат представления данных в csv-шках можно будет подогнать для удобства импорта в Excel.
Основные вопросы, которые у меня возникли:
1. Как импортировать несколько csv-шек на разные листы одной книги?
2. Как при импорте "сказать" куда именно в шаблоне какие данные из csv-шки вставлять (есть ли варианты кроме подгона всего по строкам и разделителям)?
3. Как "за один заход" и импортировать все данные, и создать pivot tables/charts?

Буду очень признателен, если подскажете, как лучше, проще и быстрее это сделать.

Последний раз редактировалось We1ss; 19.10.2011 в 21:25.
We1ss вне форума Ответить с цитированием
Старый 19.10.2011, 21:13   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Были тут темы...
Я предпочитаю такой подход - читаю csv как текст в переменную, её бью в массив по строкам, затем перебором массива строк можно получить массив данных, или сразу разложить данные по местам.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 19.10.2011, 21:16   #3
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

http://www.programmersforum.ru/showt...d.php?t=169142
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 19.10.2011, 22:10   #4
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Цитата:
читаю csv как текст в переменную
ИМХО зависит сильно от объёма файла. При больших объёмах не катит - надо читать построчно или поблочно
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 19.10.2011, 22:16   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Кажется, что в данной задаче файлы не будут большими.
Но конечно если файл в сотню мегабайт - придётся читать построчно.
По большому счёту - не принципиально.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 19.10.2011, 22:16   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Если вам надо создать сразу pivot ,то используйте SQL запрос и ADO
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.10.2011, 18:59   #7
We1ss
Новичок
Джуниор
 
Регистрация: 19.10.2011
Сообщений: 2
По умолчанию

В итоге почти сразу после написания темы в голову пришел самый банальный вариант решения проблемы:
1. Для соответствия шаблону csv-шки подгоняются по формату.
2. Вручгую импортируем их на листы (как текстовые файлы).
3. Вручную клепаем pivot (тут также можно записать простенький макрос).

Если же все хочется сделать красиво: чтобы по нажатию кнопки шаблон "всасывал" все cvs-шки сам генерил Pivot'ы, придётся позаморачиваться с

и

Цитата:
Если вам надо создать сразу pivot ,то используйте SQL запрос и ADO
Спасибо за ответы, попытаюсь погрызть мануалы/поразбирать примеры и реализовать.
We1ss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт TXT файлов в Excel Per4eLO Microsoft Office Excel 7 08.02.2017 19:33
Импорт ТХТ файлов в Excel Sepaa Microsoft Office Excel 8 13.11.2010 22:06
слияние данных из csv в excel dark7to Microsoft Office Excel 5 27.08.2009 20:06
Экспорт в csv и импорт из csv cent Microsoft Office Excel 12 28.12.2008 19:50
Импорт данных из *csv-файлов в БД bober Общие вопросы .NET 3 19.08.2008 17:20