Как экспортировать выбранные столбцы в CSV-файл


24

Я хочу экспортировать определенное количество столбцов из Excel в файл .csv. У меня есть около 10 столбцов , как lname, fname, phone, address, emailи так далее. Что я должен сделать , чтобы экспортировать только определенные столбцы , как lname, emailи так далее?

Ответы:


23

Просто сделайте простым способом: -

  1. Применить конкатенацию для 10 столбцов

    =CONCATENATE(A1,",",B1,",",C1,",",D1,",",E1,",",F1,",",G1,",",H1,",",I1,",",J1)
    
  2. Перетащите вниз конец списка вашего последнего ряда

  3. Скопируйте столбец результата
  4. Вставьте его в блокнот
  5. Сохранить как .csvформат файла

CONCATENATE работал для меня действительно здорово. Большое спасибо.
Недим Шабич

3
Просто ... если только двойная кавычка не найдена ни в одной из ваших колонок ...
епископ

Не нужно ли разделять соединенные элементы точкой с запятой? = СЦЕПИТЬ (А1; " "; В1;", "С1"; "; D1;", "; Е1;", "; F1;", "; G1;", "; H1;"," ; I1; ","; J1)
mabho

9

Выберите первый столбец, который вы хотите. Затем, удерживая нажатой <Ctrl>, выберите остальные столбцы, которые вы хотите. Скопируйте ваш выбор и вставьте его в новую рабочую книгу. Сохраните новую книгу в виде файла .csv.

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


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


4

Вот низкотехнологичное решение:

  1. Сохраните копию всего листа в формате .csv.
  2. Оставаясь открытым в Excel, удалите ненужные столбцы.
  3. Сохранить.

3

Я написал свое собственное решение VBA для этого в качестве надстройки; это доступно здесь на GitHub.

Пример просмотра (нажмите на изображение для увеличения):

Скриншот формы инструмента

Шаги для использования:

  • Установите надстройку
  • Загрузить форму ( Ctrl+ Shift+ Cв настоящее время назначен, чтобы показать форму)
  • Выделите диапазон, который вы хотите экспортировать
  • Выберите папку экспорта
  • Введите желаемое имя файла, числовой формат и разделитель
  • Выберите, добавлять ли или перезаписать
  • Нажмите «Экспорт»

Форма является немодальной, поэтому вы можете оставить ее открытой, пока вы выбираете разные диапазоны или перемещаетесь от листа к листу или от книги к книге. Отметим, что «at symbol» ( @) служит представлением числового формата «General» в Excel для таких операций вывода, как эта.

Содержимое C:\test.csvвышеприведенного примера:

13,14,15
14,15,16
15,16,17

2
Sub ExportSelectionAsCSV()
    ' MS Excel 2007
    ' Visual Basic for Applications
    '
    ' Copies the selected rows & columns
    ' to a new Excel Workbook. Saves the new 
    ' Workbook as Comma Separated Value (text) file.
    '
    ' The active workbook (the 'invoking' workbook - the 
    ' one that is active when this subroutine is called) 
    ' is unaffected.
    '
    ' Before returning from the subroutine, the invoking workbook
    ' is "set back to" (restored as) the active workbook.
    '
    ' Note: target filename is hard coded (code is simpler that way)

    ' Suspends screen updating (until ready to return)
    ' Warning: ScreenUpdating MUST be re-enabled before
    ' returning from this subroutine.
    '
    ' Note: Step through this subroutine line-by-line to prove
    ' to yourself that it is performing as promised.
    ' (Please step through the code at least once - use F8)
    Application.ScreenUpdating = False

    ' Gets the name of *this (the invoking) workbook
    ' so *this workbook can again be set active
    ' at the end of this subroutine.
    Dim CurrentFileName As String
    CurrentFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + CurrentFileName

    ' Copies the selected cells (to the clipboard).
    ' Precondition: Cells must be selected before 
    ' calling this subroutine.
    Selection.Copy

    ' Instantiates a (new) object instance of type Excel workbook.
    ' Side-effect: The new workbook instance is now
    ' the 'active' workbook. 
    Workbooks.Add Template:="Workbook"

    ' Selects the first cell of the 
    ' first worksheet of the new workbook.
    Range("A1").Select

    ' Pastes the clipboard contents to the new worksheet
    ' (of the new workbook)
    ActiveSheet.Paste

    ' Writes the new (active) Excel workbook to file.
    ' The format is Comma Separated Value
    ActiveWorkbook.SaveAs Filename:= _
    "C:\temp\data.csv" _
    , FileFormat:=xlCSV, _
    CreateBackup:=False

    ' Gets the filename of the new (active) workbook
    ' so the name can be logged.
    Dim NewFileName As String
    NewFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + NewFileName

    ' Closes the new CSV file
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

    ' Clears the clipboard contents.
    Application.CutCopyMode = False

    ' Restores the invoking workbook as the active
    ' Excel workbook. 
    Workbooks(CurrentFileName).Activate
    Range("A1").Select

    ' Re-Enables Excel screen display.
    Application.ScreenUpdating = True
End Sub


1

Если вы откроете файл в редакторе Рона, вы сможете скрыть ненужные столбцы, а затем экспортировать полученное «представление» в файл Excel или любой другой формат. А еще лучше вы можете сохранить вид для дальнейшего использования. Очень быстро, очень легко.


1

Еще одно решение:

  1. Выберите ячейки, которые вы хотите экспортировать
  2. Оберните таблицу вокруг ячеек (например, нажмите Control + T в Windows)
  3. Запустите макрос ExportTable

Сохраняет таблицу на активном листе как новый файл CSV (открывая новую книгу и сохраняя ее, используя имя таблицы в качестве имени файла).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.