将粘贴选项卡分隔结果复制到excel文件中

时间:2017-08-03 13:14:57

标签: excel bash

我创建了一个脚本来从LDAP数据库中获取数据并将其写入一个文件,其中每个值都由制表符分隔。然后我尝试将该文件的内容复制并粘贴到excel,但是它将每个“列”的所有制表符分隔的内容放在该行的第一列的一行中,而不是将每列数据放在它自己的行中在excel文件中。行好贴。 例如,让我们把这个模拟第一行

function addTab {
    res='           ' # res = "\t\tx"
    echo $1 | tr -d '\n'
    echo "$res" | tr -d '\n'

[] =我试图以编程方式在我的数据输出中插入一个标签

这让我感到困惑,因为我故意疯狂一个从我的ldap搜索结果中删除新行的函数,并在该列的数据返回结尾添加一个制表符。这是addTab函数:

addTab `getattrVal $i employeeNumber`
addTab `getattrVal $i employeeType`
addTab `getattrVal $i ou`
addTab `getattrVal $i managerEmployeeNumber`

}

这就是我调用函数的方法(注意$ i来自我用来通过循环迭代搜索的UID数组):

function getattrVale {
    /opt/bin/ldapsearch -QLLLZZH ldap://${VIP}:389/ -b $1 $2 | grep "$2:" |awk '{ print $2 }'

这是getattrVal函数的代码

nf

}

我甚至尝试使用column命令生成漂亮甚至输出的列(即列-t bashCreatedTabFile.txt),但我仍然无法在Excel电子表格中粘贴所需的内容。

我意识到有更好的方法可以做到这一点,但我认为理解为什么这不起作用对我的进步很重要。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。这不是最好的解决方案,但确实有效。

将分隔符更改为逗号(,)。像往常一样复制文本并粘贴到Excel中。它可能仍然是一列。突出显示该列,转到数据> Excel中的列文本。

确保数据类型为“分隔符”,并选择“逗号”作为分隔符。我不确定为什么,但同样的事情似乎与标签无关。

http://www.wikihow.com/Copy-Paste-Tab-Delimited-Text-Into-Excel

答案 1 :(得分:0)

尝试使用表格的html输出。

使用

print(tabulate(table, headers, tablefmt="html"))

<table>
<tbody>
<tr><th>item  </th><th style="text-align: right;">  qty</th></tr>
<tr><td>spam  </td><td style="text-align: right;">   42</td></tr>
<tr><td>eggs  </td><td style="text-align: right;">  451</td></tr>
<tr><td>bacon </td><td style="text-align: right;">    0</td></tr>
</tbody>
</table>