C#用StreamWriter写入txt文件中,想做到像ecxel那样列对齐模式。
由于梅列的字符串的长度不同,所以后面才会产生错位现象的。
因而需要设置一个每列长度的标准值,例如30,其意义为:如果该列字符为0时,将插入30个半角空格以作分隔。
然后计算一下物品列字符串实际占位长度,因为汉字是全角字符,会占据两个英文字母、数字所占的位置。
这与他们的字节数占用比例是相同的,所以可以通过计算字节数的方法来计算它实际的占位长度,可以通过这个方法来计算:
Encoding.Default.GetBytes(字符串).Length
比如 Encoding.Default.GetBytes("测试abc").Length 的结果就是7
然后再使用标准值减去这个计算得出的值,就是你需要插入的半角空格数了,这样就能保证单价列对齐。