Завантаження файлу CSV на лист Excel, Макроси Excel
Надбудова призначена для полегшення імпорту даних в Excel з текстових файлів з роздільниками (наприклад, CSV)
Поки у вкладенні - звичайний файл Excel з потрібними макросами, надбудову викладу пізніше
Використовувати функції файлу (надбудови) дуже легко.
Ось кілька прикладів:
| CSV2sheet.xls - файл з макросом імпорту даних із CSV в Excel | 45 КБ | 327 | 48 тижнів 5 днів тому |
| Файл csv (розділювач - крапка з комою) для тестування надбудови | 16.52 КБ | 19 | 4 роки 37 тижнів тому |
Коментарі
Петро, оформлюйте замовлення на сайті, прикріплюйте приклади файлів (вихідний CSV та підсумковий XLS), та докладно описуйте, що та як має працювати.
Здрастуйте, цікавить платне доопрацювання скрипту цього скрипту імпорту. Потрібно для кожного рядка основного аркуша з однієї колонки розпарити вміст (прописано через "") на окремий аркуш у кілька рядків з ключем ID з початкової колонки (ну типу зв'язані таблиці в БД). Візьметеся? Пропозицію прошу в особу. З повагою Петро
Добридень. Підкажіть, будь ласка, як іпортувати CSV (його розмір близько 1Гб) в Excel.
Треба код трохи доопрацювати Якщо готові сплатити - пишіть на пошту, зроблю
Добридень! Підкажіть, як зробити, щоб при натисканні на кнопку "Завантажити файл CSV, починаючи з першого порожнього осередку в першому стовпці" дані роздяглися по комі і при цьому дробова частина замінювалася з точки на кому (тобто 12,13,14.5 і т .д. на 12 13 14,5)
Добридень! Для вирішення моєї задачі підходить 3-й код - Вивантаження в нову книгу. Але коли я це роблю, тостворюється нова книга із вкладкою "дані" і все, вкладка порожня, нічого не вивантажується. Спочатку він пропонує вибрати файл .csv, я вибираю, потім книга з порожньою вкладкою. Чи не підкажете чому так відбувається? Я зіткнувся з проблемою, коли файл .csv вручну відкривається як треба, а ось через макрос все в рядках. Чи немає якоїсь простої можливості відкрити через макрос у нормальному вигляді? Відкриваю командою Workbooks. Open Name.
Та ж проблема, що й у пості 17 – Кавички. Що дописати для видалення лапок? Заздалегідь дякую.
Взагалі необхідно бути уважним до коду функції, де прописаний роздільник, який стоїть саме у вашому .csv файлі. Якщо як роздільник стоїть кома, то пишемо : Optional ByVal ColumnsSeparator$ = "," . далі код. Якщо ж точка з комою, то: Optional ByVal ColumnsSeparator$ = ";" . Тільки в цьому випадку буде коректне розбиття на стовпці.
Файли *.csv здебільшого відкриваються "криво", в одному стовпці через кому, не розбиваючись по стовпцях. Мені ж потрібне при відкритті рознесення стовпцями. І такий макрос знайшов, але він відкриває нову книгу. Мені ж потрібно, щоб ФАЙЛ *.csv можна було залити на лист вже відкритої книги. Ось і натрапив на Ваш макрос, думав, що потрібно знайти. Але Ваша функція і стовпчиками не розбиває.
Тоді навіщо вам розбиратися в цьому макросі, - файли CSV, як правило, відкриваються як звичайна книга Excel Так що просто запишіть свої дії вбудованим в Excel макрорекордером, - отримайте макрос відкриття CSV файлу з одного рядка.
На жаль, поки я новачок у VBA, тільки почав вивчати. Тому зробити мені цього не під силу, як і багатьом іншим необізнаним, напевно, теж.
Серед параметрів виклику функції є "Розділювач стовпців" - якщо ви його не задали, використовуєтьсязначення за замовчуванням (крапка з комою або кома вже не пам'ятаю вже) Пропишіть потрібний роздільник - і все буде коректно відкриватися.
Файл .csv безперечно відкривається, але тільки в тому вигляді в якому він і існує. Поділ на стовпці не відбувається.
Максиме, для вашого завдання у мене є спеціальна надбудова: http://excelvba.ru/programmes/Lookup
Підкажіть плз, чи можливо за допомогою цього макросу імпортувати колонки у відповідні колонки в excel. Наприклад, в CSV 2 колонки "Артикул" і "Ціна", треба імпортувати колонку з ціною, з прив'язкою по артикулу, тобто. щоб ціна артикула в csv відповідала ціні артикула в excel.
Зробіть цикл за файлами, - кожен файл окремо обробляючи цим кодом
Функція для отримання списку файлів (з прикладом циклу знайдених файлів): http://excelvba.ru/code/FilenamesCollection
Вам залишилося тільки поєднати ці 2 макроси
Чудовий код. Все працює на ура! Як змусити його обробляти групу файлів? Зараз при виборі файлу CSV він бере лише один файл.
Добридень! Дякую за цей скрипт. У мене майже все працює, тільки вивантажується не вся інформація, тому перший рядок по довжині менше інших і всі мій 1000 рядків вивантажуються в шість колонок. Що потрібно додати до коду, щоб файл читався з другого рядка або обробляв масив за максимальною довжиною рядка?
вставляє з csv фаїлу тільки 25 рядків, а решта 1000 немає?
спасибі за швидку відповідь!
як це додати до цього скрипту на жаль не уявляю (вже читаю Вашу статтю "як я став програмістом" :))
Після рядка Set fso = Nothing додайте рядок Kill Filename$ ' видалення файлу
Дякую, дуже зручний скрипт.
підкажіть, як додати видалення обробленого CSV файлу? пробував так: ------------------------ Set FSO = CreateObject("scripting.filesystemobject") ' читаємо текст із вибраного файлу Set ts = FSO.OpenTextFile(Filename$, 1, True): txt$ = ts.ReadAll:[B] ts.Delete[/B] Set ts = Nothing: Set FSO = Nothing ------------------------- безрезультатно
Друге питання – як явно вказати файл з вихідними даними?
Все можна виправити.
Додайте код видалення лапок (символ з кодом 34), а за кодуванням - візьміть функцію перекодування тут: http://excelvba.ru/code/encode
Якщо самі не впораєтеся - ви завжди можете замовити рішення під свої потреби (виславши мені вихідний файл CSV, і приклад бажаного результату в Excel)
Підкажіть після імпорту всі значення укладені в лапки, у тому числі й у порожніх осередках (прописується "") чи це можна виправити. І ще якщо у вихідному файлі була кирилиця вона "перетворюється" на кракозябри, як виправити кодування.