首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Visual阅读器什么东西不能保持文件“打开”

Visual阅读器什么东西不能保持文件“打开”
EN

Stack Overflow用户
提问于 2013-11-11 13:46:35
回答 2查看 545关注 0票数 2

我正在寻找一种查看CSV文件的方法,就像在Excel中一样(很好的清晰布局)。Excel的唯一问题是,它不会通知您更新时的更新,也不会在文件“打开”后关闭它,不像Notepad++允许您查看文件何时更新,它还允许您打开文件,然后将其插入其中,比如python.

Notepad++的唯一问题是不可能轻松地读取CSV。

Notepad++

  • Pros
    • “此文件已被另一个程序修改,您想重新加载它吗?”
    • 在可视化加载数据后关闭该文件。
    • 可以轻松地与其他文件进行比较。

  • Cons
    • 没有清晰的视觉查看器。

Excel

  • Pros
    • 清晰的视觉观赏者。

  • Cons
    • 在可视化加载数据后不会关闭该文件。
    • 当文件被另一个程序修改时不会通知您(如果它在Excel中打开,就不能修改它)
    • 很难与其他文件相比。

有人知道一个帮助我的计划吗?

在此之前

代码语言:javascript
复制
data,data,datalongdatadatalongdata,datalongdata,datalongdata,data,data,data,datalongdata,data,data,data,data,datalongdata,datalongdata,data
data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
data,data,data,data,data,data,data,data,data,data,data,data,data,data,datalongdatadatalongdatadatalongdatadatalongdatadatalongdata,data
data,data,data,data,data,data,data,data,data'data,data,data,data,data,data,data,data
data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
data,data,data,data,data,data,data,data,data,data,data,data,data,data,data,data
data,data,data,data,data,data,data,data,data,data,data,data,data,datalongdatadatalongdatadatalongdatadatalongdata,data,data

之后(查看data'data的第5行)

代码语言:javascript
复制
data,data,datalongdatadatalongdata,datalongdata,datalongdata,data,data,data,datalongdata,data,data,data,data,datalongdata,datalongdata                                                ,data
data,data,data                    ,data        ,data        ,data,data,data,data        ,data,data,data,data,data        ,data                                                        ,data
data,data,data                    ,data        ,data        ,data,data,data,data        ,data,data,data,data,data        ,data                                                        ,data
data,data,data                    ,data        ,data        ,data,data,data,data        ,data,data,data,data,data        ,datalongdatadatalongdatadatalongdatadatalongdatadatalongdata,data
data,data,data                    ,data        ,data        ,data,data,data,data'data,data,data,data,data,data,data,data
data,data,data                    ,data        ,data        ,data,data,data,data,data,data,data,data,data,data,data
data,data,data                    ,data        ,data        ,data,data,data,data,data,data,data,data,data,data,data
data,data,data                    ,data        ,data        ,data,data,data,data,data,data,data,data,datalongdatadatalongdatadatalongdatadatalongdata,data,data
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-13 21:38:47

我带着一个新的答案回来了:)在您在TextFX中发现了这个bug之后,我决定使用Python Script插件创建更好的东西。

示例

它将转换以下示例:

代码语言:javascript
复制
heeey,this,is,a,testtttttttttt
34,3
123,123,123,123,123

至:

代码语言:javascript
复制
+ ----------------------------------------- +
| heeey | this | is  | a   | testtttttttttt |
| 34    | 3    |     |     |                |
| 123   | 123  | 123 | 123 | 123            |
+ ----------------------------------------- +

以及以下各点:

代码语言:javascript
复制
title1,title2,title3,title4,title5,title6,title7,title8,title9
datalongdata,datalongdata,data,data,data,datalongdata,data,data,data
data,data,data,data,data,data,data,datalongdatadatalongdatadatalongdatadatalongdatadatalongdata,data
data,data'data,data,data,data,data,data,data,data

至:

代码语言:javascript
复制
+ ------------------------------------------------------------------------------------------------------------------------------------------------------ +
| title1       | title2       | title3 | title4 | title5 | title6       | title7 | title8                                                       | title9 |
+ ------------------------------------------------------------------------------------------------------------------------------------------------------ +
| datalongdata | datalongdata | data   | data   | data   | datalongdata | data   | data                                                         | data   |
| data         | data         | data   | data   | data   | data         | data   | datalongdatadatalongdatadatalongdatadatalongdatadatalongdata | data   |
| data         | data'data    | data   | data   | data   | data         | data   | data                                                         | data   |
+ ------------------------------------------------------------------------------------------------------------------------------------------------------ +

安装

  1. 安装Python Script插件,从Plugin Manager或从官方网站
  2. 安装后,转到Plugins > Python Script > New Script。为您的新文件选择一个文件名(如pretty_csv.py)并复制下面的代码。
  3. 打开csv文件,然后运行Plugins > Python Script > Scripts > pretty_csv.py。这将打开一个新的选项卡与您的表。

请注意,在脚本的前几行中,您可以更改一些参数。我希望变量名是不言自明的!我想最重要的是布尔型的,borderheader

代码语言:javascript
复制
#define parameters
delimiter=","
new_delimiter=" | "
border=True
border_vertical_left="| "
border_vertical_right=" |"
border_horizontal="-"
border_corner_tl="+ "
border_corner_tr=" +"
border_corner_bl="+ "
border_corner_br=" +"
header=True
border_header_separator="-"
border_header_left="+ "
border_header_right=" +"
newline="\n"

#load csv
content=editor.getText()
content=content.rstrip(newline)
rows=content.split(newline)

#find the max number of columns (so having rows with different number of columns is no problem)
max_columns=max([row.count(delimiter) for row in rows])
if max_columns>0:
    max_columns=max_columns+1

    #find the max width of each column
    column_max_width=[0]*max_columns
    for row in rows:
        for index,column in enumerate(row.split(delimiter)):
            width=len(column)
            if width>column_max_width[index]:
                column_max_width[index]=width
    total_length=sum(column_max_width)+len(new_delimiter)*(max_columns-1)

    #create new document
    notepad.new()

    #apply the changes
    left=border_vertical_left if border is True else ""
    right=border_vertical_right if border is True else ""
    left_header=border_header_left if border is True else ""
    right_header=border_header_right if border is True else ""
    for row_number,row in enumerate(rows):
        columns=row.split(delimiter)
        max_index=len(columns)-1
        for index in range(max_columns):
            if index>max_index:
                columns.append(' ' * column_max_width[index])
            else:
                diff=column_max_width[index]-len(columns[index])
                columns[index]=columns[index] + ' ' * diff

        if row_number==0 and border is True: #draw top border
            editor.addText(border_corner_tl + border_horizontal * total_length + border_corner_tr + newline)
        editor.addText(left + new_delimiter.join(columns) + right + newline) #print the new row
        if row_number==0 and header is True: #draw header's separator
            editor.addText(left_header + border_header_separator * total_length + right_header + newline)
        if row_number==len(rows)-1 and border is True: #draw bottom border
            editor.addText(border_corner_bl + border_horizontal * total_length + border_corner_br)
else:
    console.clear()
    console.show()
    console.writeError("No \"%s\" delimiter found!" % delimiter)

如果你发现任何错误或有任何建议,请告诉我!

票数 1
EN

Stack Overflow用户

发布于 2013-11-11 14:44:35

您将永远无法在Notepad++中实现Excel的出色的视觉体验!

我所知道的唯一的“解决方案”就是TextFX插件。

选择所有文本,然后转到TextFX > TextFX Edit > Line up multiple lines by (,)。这将转换以下示例:

代码语言:javascript
复制
heeey,this,is,a,testtttttttttt
34,3,2234,3,5
123,123,123,123,123

至:

代码语言:javascript
复制
heeey,this,is  ,a  ,testtttttttttt
34   ,3   ,2234,3  ,5
123  ,123 ,123 ,123,123

PS。您可能需要检查CSVed。没有必要使用它,所以我不知道它是否具备您所需的所有功能,但从屏幕截图看,它看起来很好:)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19907946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档