如下面的图片" 之前 "中所示,用逗号分隔的每列不是对齐的.是否有任何方法可以像Excel中的显示效果一样垂直对齐每列?
感谢@Martin S,我可以像文件" Method_1 " 一样对齐文件.正如他所提到的,一些人物仍然不能很好地对齐.我想知道这种方法是否可以改进?

Ped*_*eis 19
您可以使用TextFX插件:编辑>排队多行...
注意:如果文件是只读的,则不起作用.
http://tomaslind.net/2016/02/18/how-to-align-columns-in-notepad/
BdR*_*BdR 19
也许不完全是您想要的,但我最近在 Notepad++ 中添加了一个CSV Lint 插件,它还为 csv 和固定宽度数据文件添加了语法突出显示,这意味着每一列都有不同的颜色,因此更容易查看。
Sta*_*uff 14
要重新格式化,请执行以下操作:
仅供参考:您可以使用该Trim all values复选框重新格式化。
如果您想自己尝试一下:这是我的示例输入:
TIMESTAMP_START,TIMESTAMP_END,TA_ERA,TA_ERA_NIGHT,TA_ERA_NIGHT_SD,TA_ERA_DAY,DA_ERA_DAY_SD,SW_IN_ERA,HH,DD,WW-YY,SW_IN_F,HH
19890101,19890107,3.436,1.509,2.165,6.134,2.889,100.233,283.946,1.373,99.852,2.748,1.188
19890108,19890114,3.814,2.446,2.014,5.728,2.526,91.708,286.451,1.575,100,100.841,0.742
Run Code Online (Sandbox Code Playgroud)
Notepad++ 插件很脆弱。这对我有用Notepad++ v8.4.2 (32-bit)。因此,如果这对您不起作用,请考虑从 64 位切换到 32 位,并降级到这个确切的版本和位数。
相关: CSVLint 演示视频、GitHub 上的 CSVLint 文档
您可以使用这个 python 插件脚本,它利用 csv 库处理引用的 csv 和许多其他变体。
CSV到表格.py
import csv
inputlines = editor.getText().split('\n')
# Get rid of empty lines
inputlines = [line.strip() for line in inputlines if line.strip()]
reader = csv.reader(inputlines, delimiter=',')
csvlist = [line for line in reader]
# transpose to calculate the column widths and create a format string which left aligns each row
t_csvlist = zip(*csvlist)
col_widths = [max([len(x) for x in t_csvlist[y]]) for y in range(len(t_csvlist))]
# To right align - change < to >
fmt_str = ' '.join(['{{:<{0}}}'.format(x) for x in col_widths]) + '\r\n'
text = []
for line in csvlist:
text.append(fmt_str.format(*line))
# open a new document and put the results in there.
notepad.new()
editor.addText(''.join(text))
Run Code Online (Sandbox Code Playgroud)
如果您想从 CSV 中右对齐数字字段,请使用以下 python 脚本 - 它查看 csv 的第二行以确定字段的类型。
import csv
import re
num_re = re.compile('[-\+]?\d+(\.\d+)?')
inputlines = editor.getText().split('\n')
# Get rid of empty lines
inputlines = [line.strip() for line in inputlines if line.strip()]
reader = csv.reader(inputlines, delimiter=',')
csvlist = [line for line in reader]
# Transpose to calculate the column widths and create a format string which left aligns each row
t_csvlist = zip(*csvlist)
col_widths = [max([len(x) for x in t_csvlist[y]]) for y in range(len(t_csvlist))]
# Numbers get right aligned
type_eval_line = csvlist[1 if len(csvlist)>1 else 0]
alignment = ['>' if num_re.match(item) else '<' for item in type_eval_line]
# Compute the format string
fmt_str = ' '.join(['{{:{0}{1}}}'.format(a,x) for x,a in zip(col_widths,alignment)]) + '\r\n'
text = []
for line in csvlist:
text.append(fmt_str.format(*line))
# open a new document and put the results in there.
notepad.new()
editor.addText(''.join(text))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36220 次 |
| 最近记录: |