As shown in the picture "Before" below, each column separated by comma is not aligned neatedly. Is there any method to align each column vertically like the display effect in Excel?
The effect I wish is shown in the picture "After".
Thanks to @Martin S , I can align the file like the picture "Method_1". As he has mentioned, some characters still cannot align well. I was wondering if this method could be improved?
4 Answers
You can use the TextFX plugin: Edit > Line Up multiple lines by ...
Note: This doesn't work if the file is read only.
Update 2019: Download link from SourceForge
You can use this python plugin script which utilizes the csv library which takes care of quoted csv and many other variants.
Setup:
- Use the plugin manager in Notepad++ to install the "Python script" plugin.
- Plugins->Python Script->New Script (name it something like CSVtoTable.py)
- Paste the following python script into the new file and save:
CSVtoTable.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))
- Open your CSV file in notepad++
- Click on Plugins->Python Script->Scripts->(The name you used in step 2)
- A new tab with the formatted data should open.