Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建将数据正确传输到记事本的Excel工作表_Excel_Text_Padding_Notepad - Fatal编程技术网

创建将数据正确传输到记事本的Excel工作表

创建将数据正确传输到记事本的Excel工作表,excel,text,padding,notepad,Excel,Text,Padding,Notepad,我有一个电子表格,其中包含的数据必须放在记事本上,但间距永远不会对齐。我尝试过使用文本填充,但无法找出如何将其隔开。我希望用户能够输入信息,然后能够复制并粘贴到记事本上,而无需花费数小时将信息排列到标题上。感谢您的帮助。我上传了一张照片,上面写着当它传输到记事本时会发生什么 看起来您只是在低效地设置电子表格 不要为不同的类型设置单独的列,只需设置一个名为“Type”的列和另一个名为“ID”的列,并且不要将任何单元格留空,例如: Date/Time Type ID

我有一个电子表格,其中包含的数据必须放在记事本上,但间距永远不会对齐。我尝试过使用文本填充,但无法找出如何将其隔开。我希望用户能够输入信息,然后能够复制并粘贴到记事本上,而无需花费数小时将信息排列到标题上。感谢您的帮助。我上传了一张照片,上面写着当它传输到记事本时会发生什么

看起来您只是在低效地设置电子表格

不要为不同的类型设置单独的列,只需设置一个名为“Type”的列和另一个名为“ID”的列,并且不要将任何单元格留空,例如:

Date/Time   Type        ID          etc...
1/1/18      Outgoing    1234567890
1/2/18      Incoming    1234567890

另一个选项是将文件保存为.csv文件类型(逗号分隔值),然后在记事本中打开时,所有条目都用逗号分隔,您可以轻松地在Excel和记事本之间来回切换。

假设您不必担心任何列中的换行,一个过于简单的建议是使用以下公式设置另一个工作表/选项卡:

={TEXTJOIN(“ “, FALSE, ‘SHEET1’!A2 & REPT(“ “, MAX(LEN(‘SHEET1’!A:A))), ‘SHEET1’!B2 & REPT(“ “, MAX(LEN(‘SHEET1’!B:B))), ... ‘SHEET1’!X2 & REPT(“ “, MAX(LEN(‘SHEET1’!X:X))))}

您应该替换“…”和对适当内容的引用。然后,人们可以从该选项卡上复制。该公式必须包含在其他电子表格的每一行中。使用VBA也可以改善这一点。

如果您正在创建excel文件,那么最简单的选择是提供一种txt格式的替代导出。
不太好的替代方法是获取最长值的长度(以字符为单位),并在其他值后面添加缺失的空间量。但是我没有检查复制时excel trima Vale是否可用。 在这两种情况下,如果用于打开数据的编辑器使用的字体不是等距字体,则无法实现完美对齐。 CSV可能是另一种选择(因为它可以由文本编辑器和单元格文件编辑器打开)

您选择的解决方案可能因文件使用的环境而异


但是,如果您希望用户按照问题中的说明手动输入数据,您可能希望使用VBA并提供一个导出按钮,允许用户从excel创建txt文件

没有VBA,一个选项如下:

像下面这样摆一张桌子

A                B                C              D
20               15               15             15 
Date / Time      Type             ID             Duration       Output
3/25/2018 13:49  Outgoing         1234567890     32s            Formula Here
在第1行中,根据需要设置宽度,然后在“此处公式”中放置以下公式:

=连接(如果(A3=”,REPT(“,$A$1)”,替换(REPT(“,$A$1)”,1,LEN(文本(A3,“dd/mm/yyyy hh:mm”)、文本(A3,“dd/mm/yyyyy hh:mm”)、替换(REPT(“,$B$1)、1,LEN(B3)、替换(REPT(“,$C$1)、1,LEN(C3)、替换(REPT(“,$D$D$1)、D3)、D3))


然后,您可以根据需要复制此列并粘贴到记事本中。

您是通过代码创建txt吗?否,文本是手动输入到每个单元格中的。我是说记事本中的文件否,我只是从Excel工作表中复制并将其放入记事本中。只是为了帮助您了解问题所在:当您将Excel范围复制到记事本时d、 列将由制表符替换,以具有
分隔符
。您可以将其视为Excel为每条垂直线(即单元格边界)插入
制表符
在您的行中。因此Excel中
a | B | C
的一行变为
ABC
。现在,您可以通过使用Word了解到,选项卡具有固定的宽度,因此,如果文本长度发生变化,则选项卡将进一步“来回移动”。您可以通过适当设置文本格式来避免这种情况(例如,对于日期,始终使用固定长度
YYYY-MM-DD hh:MM
).实际上,这是个好主意!虽然我仍然对能够运行带空格的代码感到好奇。但这很有效!谢谢!实际上,我收回了它。它不起作用。我仍然需要某种类型的代码来填充空格。除非没有日期/时间,它仍然保留01/00/1900 00:00,否则您可以在a列中添加一个IF条件,只保留p如果这个字段是空的,那就用空格填吧。我不知道该把这个放在哪里。