使用vba将excel中的一系列数据导出为ascii纯文本格式的表csv或txt文件

我只需要将一系列数据从Excel或LibreOffice Calc文件导出到ASCII纯文本表格 – 文本文件。 输出格式如下:

+--------+--------------+--------+ | Name | Place | Phone | +========+==============+========+ | JOHN | TEXAS | 123456 | +--------+--------------+--------+ | ROBERT | INDIANAPOLIS | 234567 | +--------+--------------+--------+ | JEANNE | CAMBODIA | 345678 | +--------+--------------+--------+ | ANN | CANADA | 456789 | +--------+--------------+--------+ | RICK | HAGUE | 567890 | +--------+--------------+--------+ 

可以使用vba吗? 是的,数字应该是alignment的。

或者像这样:

 +--------+--------------+--------+ | Name | Place | Phone | +========+==============+========+ | JOHN | TEXAS | 123456 | | ROBERT | INDIANAPOLIS | 234567 | | JEANNE | CAMBODIA | 345678 | | ANN | CANADA | 456789 | | RICK | HAGUE | 567890 | +--------+--------------+--------+ 

如果我没有弄错,纯文本文件根本就不能certificate一列。

这就是说,试试这个: http : //www.excel-easy.com/vba/examples/write-data-to-text-file.html

那么,我得到了它的工作。

 Sub Convert2Text() Dim i As Integer, k As Integer, n As Integer, m As Integer Dim Rng As Range, Dpath As String Dim FSO As Scripting.FileSystemObject Dim TxtFile As TextStream Dim MaxLen As Integer Set Rng = Application.InputBox("Please Select range.", "-Convert to Text-", , -Range("R2").Left, Range("R2").Top, , , 8) If Rng Is Nothing Then Exit Sub End If Dpath = Environ("USERPROFILE") & "\Documents\" Set FSO = New FileSystemObject Set TxtFile = FSO.CreateTextFile(Dpath & "Outputfile.txt", True) MaxLen = 1 For i = 1 To Rng.Columns.Count For k = 1 To Rng.Rows.Count If MaxLen < Len(Rng.Cells(i, k)) Then MaxLen = Len(Rng.Cells(i, k)) End If Next k Next i MaxLen = MaxLen + 4 For i = 1 To Rng.Columns.Count TxtFile.Write "+" For m = 1 To MaxLen TxtFile.Write "=" Next m Next i TxtFile.Write "+" TxtFile.WriteLine For n = 1 To Rng.Rows.Count For i = 1 To Rng.Columns.Count TxtFile.Write "|" TxtFile.Write " " TxtFile.Write " " TxtFile.Write Rng.Cells(n, i) For k = 1 To MaxLen - (Len(Rng.Cells(n, i))) - 2 TxtFile.Write " " Next k Next i TxtFile.Write "|" TxtFile.WriteLine For i = 1 To Rng.Columns.Count TxtFile.Write "+" For m = 1 To MaxLen TxtFile.Write "-" Next m Next i TxtFile.Write "+" TxtFile.WriteLine Next n MsgBox "Done!" Shell "explorer.exe " & Dpath, vbNormalFocus End Sub 

现在,我必须专注于让数字alignment。 谢谢大家的build议。