我编写了一个代码,用于为文本文件生成收据。目前收据未格式化。它看起来像这样:
Order Form
GTIN NAME QUANTITY
11111115 , plain bracket , 12
22222220 , wheelbarrow , 238
我想让代码采用与此类似的简洁格式:
Order Form
GTIN NAME QUANTITY
11111115 plain bracket 12
22222220 wheelbarrow 238
Visual Basic中是否有一个函数可以格式化我如何将文本写入文件?我已经使用StringBuilder
将文本(来自ListBox - 导致它是当前格式)附加到文本文件中,尽管我不知道是否使用StringBuilder
而不是StreamWriter
我将如何格式化它将会有所作为。
我正在使用的代码:
Dim CreateReceipt As New System.Text.StringBuilder()
CreateReceipt.Append("Order Form")
CreateReceipt.Append(Environment.NewLine + Environment.NewLine)
CreateReceipt.Append("GTIN" + " " + "NAME" + " " + "QUANTITY")
CreateReceipt.Append(Environment.NewLine)
For Each o As Object In lstOrderForm.Items
CreateReceipt.AppendLine(o)
Next
System.IO.File.WriteAllText("order_receipt.txt", CreateReceipt.ToString())
Process.Start("order_receipt.txt")
答案 0 :(得分:1)
尝试使用.PadRight
。它将用空格填充你的字符串。
示例:
Dim x AS Integer = 0
Dim foo As String = x.ToString().PadRight(15)
'foo = "0 "
答案 1 :(得分:0)
这假设您的ListView
看起来像这样:
我的设置为3 Columns
和3 Items
。每个Item
都有2 SubItems
。这可能与你的不同,但应该给你一些想法。
我将使用String.PadRight方法均匀分布列和文本。我使用 15 来填充,但是您确实需要确定最长的字符串,以确保正确均匀地填充。
Dim sb As New StringBuilder
sb.AppendLine("Order Form" & vbCrLf)
sb.AppendLine("GTIN".PadRight(15) & "NAME".PadRight(15) & "QUANTITY".PadRight(15))
For Each lvi As ListViewItem In ListView1.Items
sb.AppendLine(lvi.SubItems(0).Text.PadRight(15) & lvi.SubItems(1).Text.PadRight(15) & lvi.SubItems(2).Text.PadRight(15))
Next
System.IO.File.WriteAllText("order_receipt.txt", sb.ToString())
Process.Start("order_receipt.txt")
这是输出的屏幕截图:
这是填充错误的一个例子。在这里,我使用 10 来填充: