Экспортировать электронную таблицу Excel в текстовый файл фиксированной ширины?

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

Это также имеет функциональность, куда, учитывая существующую электронную таблицу можно экспортировать в текстовый файл фиксированной ширины?

Если так, как я получаю доступ к этому? Я попытался использовать, Сохраняют как и выбор Text File, но это, кажется, только сохраняет, как разграничено Вкладкой, который не помогает мне.

Это - Excel 2003, если он имеет значение.

24
задан 20.03.2010, 11:19

4 ответа

Я думаю самое близкое, которое можно получить от собственной функциональности Excel, Сохранение как | Форматированный текст (Разграниченное Пространство) (*.prn). Это автоматически определит ширины и вставит пробелы для заполнения к той ширине по мере необходимости.

Кроме того у Вас должны быть макрос или другое дополнение, которое позволит Вам сделать больше.

24
ответ дан 07.12.2019, 09:42

Если у Вас есть Профессионал Office, можно открыть файл Excel в Доступе и затем Экспорт от Доступа. Доступ позволит Вам указать расположение фиксированной ширины для своего экспортируемого файла и дает Вам чрезвычайно детализированные средства управления для определения тех ширин.

14
ответ дан 07.12.2019, 09:42

Во-первых, отформатируйте свои данные как Courier New (или некоторый другой шрифт фиксированной ширины). Затем сохраните как .prn, и Вы получите истинную фиксированную ширину.

4
ответ дан 07.12.2019, 09:42

Ничего себе, я собирался задать этот вопрос сам, но его уже спросили. Весь вывод буфера обмена Excel является вкладкой, разграниченной по умолчанию. Это является довольно раздражающим для "реального" вывода простого текста, когда у Вас есть шрифт фиксированной ширины, но не обязательно поддержка разграничителя табуляции.

Так или иначе я нашел и изменил маленький Excel Macro, который скопирует в настоящее время выбираемый регион как простую таблицу ASCII столбцов фиксированной ширины - как так:

187712 201    37     0.18   
2525   580    149    0.25   
136829 137    43     0.31   

Вот Макро-код. Для использования его удостоверьтесь, что Вы включаете вкладку Developer в Excel Options при использовании Excel 2007 или позже.

Sub CopySelectionToClipboardAsText()

   ' requires a reference to "Windows Forms 2.0 Object Library"
   ' add it via Tools / References; if it does not appear in the list
   ' manually add it as the path C:\Windows\System32\FM20.dll

    Dim r As Long, c As Long
    Dim selectedrows As Integer, selectedcols As Integer

    Dim arr
    arr = ActiveSheet.UsedRange
    selectedrows = UBound(arr, 1)
    selectedcols = UBound(arr, 2)

    Dim temp As Integer
    Dim cellsize As Integer
    cellsize = 0
    For c = 1 To selectedcols
        temp = Len(CStr(Cells(1, c)))
        If temp > cellsize Then
            cellsize = temp
        End If
    Next c
    cellsize = cellsize + 1

    Dim line As String
    Dim output As String

    For r = 1 To selectedrows
        line = Space(selectedcols * cellsize)
        For c = 1 To selectedcols
            Mid(line, c * cellsize - cellsize + 1, cellsize) = Cells(r, c)
        Next c
        output = output + line + Chr(13) + Chr(10)
    Next r

    Dim MyData As MSForms.DataObject
    Set MyData = New DataObject
    MyData.SetText output
    MyData.PutInClipboard

    MsgBox "The current selection was formatted and copied to the clipboard"

End Sub
5
ответ дан 07.12.2019, 09:42

Теги

Похожие вопросы