Zautomatyzować Kreatora importu tekstu Excel?

3

Czasami otrzymuję pliki w formacie o stałej szerokości. Muszę je zaimportować do programu Excel, ale program Excel nie doskonale zbiera kolumny. Mogę to zrobić ręcznie za każdym razem za pomocą Kreatora importu tekstu, ale zastanawiam się, czy istnieje sposób na utworzenie „szablonu importu tekstu” lub coś podobnego - ponieważ pliki te mają zawsze ten sam format.

Dave Mackey
źródło

Odpowiedzi:

3

Jeśli zarejestrujesz makro (Narzędzia - Makro - Nagraj nowe makro) podczas otwierania pliku, otrzymasz parametry potrzebne do użycia metody OpenText. Oto przykład

Workbooks.OpenText Filename:= _
    "C:\Documents and Settings\dick\My Documents\actsynclog.txt", Origin:=437, _
    StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(8, _
    1), Array(31, 1), Array(41, 1), Array(57, 1), Array(77, 1), Array(80, 1), Array(82, 1), _
    Array(84, 1), Array(86, 1)), TrailingMinusNumbers:=True

Argument FieldInfo jest tym, na którym ci zależy. Jest to tablica tablic 2D. Pierwszy element to kolumna, a drugi to typ danych. Ten przykład dzieli plik tekstowy na następujące kolumny: 0, 8, 31, 41, 57, 77, 80, 82, 84 i 86.

Dzięki temu możesz napisać makro, aby otworzyć plik tekstowy. Zobacz metodę GetOpenFileName obiektu Application, aby dowiedzieć się, jak wybrać plik do otwarcia.

dkusleika
źródło
1

W programie Excel można zapisać ustawienia importu tekstu (jako „szablon”) i użyć ich później z dowolnym plikiem tekstowym. W blogu autorstwa Excel MVP Jana Karela Pieterse szczegółowo opisano to: http://blogs.office.com/2010/06/10/importing-text-files-in-an-excel-sheet/

„Szablon importu tekstu” jest tworzony automatycznie po zakończeniu pracy z Kreatorem importu tekstu. Pamiętaj, aby zapisać skoroszyt, aby zachować „szablon”.

Aby ponownie użyć go z innym (lub tym samym) plikiem tekstowym:

  1. Kliknij dowolną komórkę w arkuszu, która przechowuje (używana do przechowywania) dane poprzedniego importu.
    • Excel 2007/2010: Kliknij Dane -> Odśwież wszystko menu rozwijane -> Odśwież
    • Excel 2003 i starsze: Kliknij Dane -> Odśwież dane

Jeśli używasz tego „szablonu”, aby zawsze importować plik o tej samej nazwie i lokalizacji, możesz dostosować „szablon”, aby program Excel nie wyświetlał monitu o podanie nazwy pliku za każdym razem, gdy klikniesz przycisk Odśwież.

Podczas importu tekstu kliknij Właściwości ... w oknie dialogowym Import danych i odznacz opcję Pytaj o nazwę pliku podczas odświeżania w oknie dialogowym Właściwości zewnętrznego zakresu danych. Możesz również edytować to później w oknie dialogowym Właściwości połączenia.

Publikowałem zrzuty ekranu, ale „potrzebuję co najmniej 10 reputacji, aby publikować zdjęcia”.

Tkacz
źródło
0

Jeśli nie masz nic przeciwkoPerl programowaniu,
istnieje moduł arkusza kalkulacyjnego , który obsługuje WriteExcel .

Użyłem tego wcześniej, aby zrobić odwrotność tego, co chcesz - przekonwertować plik Excel do formatu CSV ,
użyłem ReadExceldo tego.

Spójrz na przykłady w WriteExcellinku tutaj i inne odniesienia do XLS-to-CSV w tym pytaniu, możesz znaleźć coś, co działa dla ciebie między nimi.

nik
źródło