Excel имеет функциональность для импорта текстовых файлов фиксированной ширины, где это представляет диалоговое окно, которое позволяет Вам выбрать, где начинание и концы полей - который это помещает в столбцы.
Это также имеет функциональность, куда, учитывая существующую электронную таблицу можно экспортировать в текстовый файл фиксированной ширины?
Если так, как я получаю доступ к этому? Я попытался использовать, Сохраняют как и выбор Text File, но это, кажется, только сохраняет, как разграничено Вкладкой, который не помогает мне.
Это - Excel 2003, если он имеет значение.
Я думаю самое близкое, которое можно получить от собственной функциональности Excel, Сохранение как | Форматированный текст (Разграниченное Пространство) (*.prn). Это автоматически определит ширины и вставит пробелы для заполнения к той ширине по мере необходимости.
Кроме того у Вас должны быть макрос или другое дополнение, которое позволит Вам сделать больше.
Если у Вас есть Профессионал Office, можно открыть файл Excel в Доступе и затем Экспорт от Доступа. Доступ позволит Вам указать расположение фиксированной ширины для своего экспортируемого файла и дает Вам чрезвычайно детализированные средства управления для определения тех ширин.
Ничего себе, я собирался задать этот вопрос сам, но его уже спросили. Весь вывод буфера обмена 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