Файли Excel, створені вручну, порівняно з комп'ютерними звітами / файлами


-1

Чому дані в зведеному користувачем звіті (наприклад, закодовані вручну записи журналу у файлі excel) знищуються, коли я додаю їх або об’єдную їх за допомогою мови команд аудиту або Windows cmd?

Як, наприклад, я намагаюся додати вміст звітів про продаж, вміст даних яких людина вводив вручну. Однак, коли я додаю їх, дані знищуються. Це не стосується згенерованих комп'ютером звітів (тобто звітів, створених SAP).


Чи можете ви додати більше деталей щодо того, які кроки ви робите? Як ви точно додаєте або об’єднуєте звіти?
Andi Mohr

Привіт Енді, дякую за коментар. Для Windows cmd я використовую copy / b * .xls consolid.xls
Frances Ouano Ponce

Чи є причина, що ви використовуєте параметр / b? Я сам з цим не знайомий, але ця відповідь тут говоритьThe /b flag of the copy command treats the files as binary (i.e., a raw stream of meaningless bytes)...You can merge text files with either the default text behavior or the binary switch, but pretty much any binary file will not work.
Andi Mohr

Насправді я дізнався про / b параметр саме сьогодні. Я теж не з цим знайомий. Зазвичай я використовую copy * .xls consolid.xls для додавання своїх файлів.
Франсіс Уано Понсе

Я не думаю, що ви можете використовувати, copy *.xls consolidated.xlsоскільки файли Excel - це не простий звичайний текст. Наскільки мені відомо, ця команда працює лише у текстових / CSV-файлах. Я здивований, що консолідований файл, створений таким чином, фактично відкриється (якщо тільки ваші звіти про SAP - це фактично CSV, а не файли Excel).
Andi Mohr

Відповіді:


1

Файли Excel - це двійкові файли , а не звичайний текст. Запуск copy *.txt consolidated.txtпрекрасний, але запуск copy *.xls consolidated.xlsне працює, тому що бінарні файли закодовані так, що вам потрібно відкрити конкретну програму, яка розуміє структуру даних у файлі.

Один із способів консолідувати папку файлів Excel - це просто перетворити їх у звичайний текстовий формат (наприклад, csv) та консолідувати ті, що використовуються copyв командному рядку.

Ви можете створити макрос для цього:

  1. Створіть новий файл Excel. Збережіть файл у тому самому каталозі, що і файли, які ви хочете консолідувати як робочу книжку з підтримкою макросу: наприклад, CsvConverter.xlsm

  2. Натисніть alt+, F11щоб відкрити редактор Visual Basic. Виберіть Вставити, а потім - Модуль .

  3. Вставте наступний код у свій модуль (взято звідси) :

    Option Explicit
    
    Sub ConvertToCSV()
    ' Uses code from John Walkenbach's Power Programming book
    '
    Dim i As Long
    Dim NumFiles As Long
    Dim FileName As String
    Dim FileNames() As String
    
    ' Get name of first file in backlog directory
    FileName = Dir(ThisWorkbook.Path & "/*.xls")
    
    NumFiles = 1
    ReDim Preserve FileNames(1 To NumFiles)
    FileNames(NumFiles) = FileName
    
    ' Get other file names, if any
    Do While FileName <> ""
    FileName = Dir()
    If FileName <> "" Then
    NumFiles = NumFiles + 1
    ReDim Preserve FileNames(1 To NumFiles)
    FileNames(NumFiles) = FileName
    End If
    Loop
    
    ' Save each file as a .csv file, overwriting any existing .csv files
    Application.DisplayAlerts = False
    For i = 1 To UBound(FileNames)
    If FileNames(i) <> ThisWorkbook.Name Then
    Workbooks.Open FileName:=ThisWorkbook.Path & "\" & FileNames(i)
    ActiveWorkbook.SaveAs _
    FileName:=Left(FileNames(i), Len(FileNames(i)) - 4) &
    ".csv", _
    FileFormat:=xlCSV
    ActiveWorkbook.Close
    End If
    Next i
    Application.DisplayAlerts = True
    
    End Sub
    
  4. Запустіть макрос .

  5. Тепер у командному рядку перейдіть до своєї папки та введіть

    копія * .csv consolid.csv

  6. Відкрийте консолідований.csv в Excel і збережіть як звичайний .xlsx підручник знову, щоб застосувати будь-яке форматування або інші зміни.


Дуже дякую за допомогу, Енді. Дуже ціную це. Дуже корисно для мене в роботі з аналізу даних. Ще раз дякую
Френсіс Уано Понсе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.