繁体   English   中英

Excel保存CSV不带空格

[英]Excel Save CSV without blanks

我有一个Excel电子表格,可以生成应用程序中使用的CSV脚本。 脚本必须采用非常特定的格式,我以受保护工作表和数据验证的XLSX格式保存母版,以保存CSV而不是直接编辑CSV,因为直接编辑CSV会导致错误。

问题是脚本几乎可以是任意长度。 每行的左列只能是一组特定值中的一个,最后一行必须说“ END”。 没有VBA的唯一方法是在A列中使用以下公式,从第7行(前6个是标题信息)到1048576行(​​最后一个Excel行),并保护A列锁定的工作表:

   =IF(AND(ISBLANK(B368),NOT(ISBLANK(B367))),"END",IF(ISBLANK(B368),"",A367))

这将使最后一行在A列中显示为“ END”,而在空白之后的所有行都将变为“ END”。 问题是,现在保存CSV文件时,它将始终具有1048576行,所有底部行都包含定界符“ ,,,,”。 此操作无效,CSV文件需要在“ END”行之后停止。 有没有一种写公式的方法,该公式将导致Excel在保存为CSV时忽略计算为空白的单元格,或者以另一种方式在Excel中保存为CSV的计算将忽略所有计算为空白的行?

注意:我已经在VBA中有一个解决方案,可以在自己的机器上使用(它将数据复制到“ END”,以纯文本格式粘贴到新工作表中,然后以原始工作表的名称另存为CSV) 。 但是,我想共享此工作表,而在安全问题上解决在公司共享宏的麻烦。 因此,我正在寻找一种无需宏就可以完成的方法,如果可能的话。

在寻找答案时,我发现此链接是相似的,但不相同: 使用VBA将Excel数据另存为csv-删除文件末尾的空白行以进行保存

由于我的“空白”是活动行,因为它们包含公式,因此该方法将不起作用。

GSerg在另一个问题中指出,手动删除行/列将重置大小。 另外,也可以按照GSserg的建议,在保存之前将数据复制到新的工作表中。

否则,一个简单的解决方法可能是创建一个小的Excel后期处理/预处理脚本-也许使用批处理文件-TXT文件中的“ 批处理/查找并编辑行” -或使用任何小型脚本语言的类似解决方案来删除多余的行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM