通过将数组值转换为表来创建 .txt 文件 [关闭]

Posted

技术标签:

【中文标题】通过将数组值转换为表来创建 .txt 文件 [关闭]【英文标题】:Create a .txt file by converting array value as table [closed] 【发布时间】:2014-03-13 15:17:44 【问题描述】:

我有一个数组

myarray = ["ram", "ram", "jan", "jan", "feb", "feb"]

是否可以创建一个 .txt 文件以表格格式包含此值?

【问题讨论】:

您应该提供您期望的问题格式。为什么数组中有重复的值? 您想使用前端 javascript 还是后端 Node.js? “表格格式”是什么意思? CSV? 不是重复值。它可能是用户名和密码。就我而言,两者都是一样的。 那为什么不使用对象而不是数组呢?我的意思是对象数组 @Frax Table 的意思是,类似于用户名和密码的报告。 【参考方案1】:

有几种方法可以实现(这取决于您的最终要求和限制)。最好的方法是使用一些模板引擎,例如underscore templateJade

不过,您也可以使用常规 JavaScript 数组来实现。

返回 html 表格示例:

var myarray  = ["user1", "pass1", "user2", "pass2", "user3", "pass3" ],
    output = [];
output.push('<table>')
for (var i = 0; i < myarray .length; i += 2) 
    output.push('<tr><td>')
    output.push(myarray [i])
    output.push('</td><td>')
    output.push(myarray [i+1])
    output.push('</td></tr>')
;
output.push('</table>')

// output.join('') gives you formatted HTML array

输出如下(请注意,HTML 已被格式化以提高可读性):

<table>
    <tr><td>user1</td><td>pass1</td></tr>
    <tr><td>user2</td><td>pass2</td></tr>
    <tr><td>user3</td><td>pass3</td></tr>
</table>

我希望这会有所帮助。

【讨论】:

【参考方案2】:

前端:

如果您的代码将在前端(浏览器)上,您可以使用以下代码:

var row_width = 40;

var content = "";
content += "Username" + new Array(row_width + 1).join(" ") + "Password\n";
content += "********" + new Array(row_width + 1).join(" ") + "********\n";

for (var i = 0; i < myarray.length; i += 2) 
    content += myarray[i] + new Array(row_width - myarray[i].length + 9).join(" ");
    content += myarray[i+1];
    content += "\n";


// Build a data URI:
uri = "data:application/octet-stream," + encodeURIComponent(content);

// Click on the file to download
// You can also do this as a button that has the href pointing to the data URI
location.href = uri;

这是一个工作前端示例的链接:Fiddle

将文件命名为 something.txt。

后端:

如果你想在后端使用 Node.js 来生成并保存这个文件,你需要使用如下:

如上循环遍历数组并创建“内容”字符串后,按如下方式保存文件:

var fs = require('fs');

fs.writeFile("/path_to_file/table.txt", content, function (err)
    if (err) 
        console.log(err);
     else 
        console.log("File saved");
    
);

我还没有尝试过该代码,但请随时告诉我它是否适合您。我希望这就是你所需要的。

注意一些过时/坏的浏览器可能不支持前端代码

【讨论】:

它有效.. 谢谢,但对齐不好,它显示为Username Password******** ********ram ramjan janfeb feb 你能帮我吗? 这是调整内容字符串的问题...我会尝试添加制表符和换行符,然后通知您。你可以随意修改字符串 是的……非常感谢…… 我更新了代码,在字符串中添加了“\n”换行符。让我知道它是否看起来更好 如果您想将其保留为文本,您只需要正确设置空格数量即可。我添加了更多新行。它现在应该看起来更好,但需要更多的调整。我们还可以将文件作为 HTML 格式,其中包含一个表格和一些 CSS 规则

以上是关于通过将数组值转换为表来创建 .txt 文件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server - 将标量函数转换为表值函数

将任何文件转换为二进制字符串并从二进制转换为文件[关闭]

使用 xml 将 csv 值转换为表行。谁能解释一下下面提到的查询将如何工作

将字符串转换为表中的字段值

将 3D 数组转换为 RGB 值数组 [关闭]

AWS Athena 无法将 .csv 整数转换为表值