我使用Microsoft Interop将excel文件转换为csv文件。我使用sheet.SaveAs函数。
我的初始Excel工作表包含从A1到AZ列的数据,共100行。 我在CSV中只需要从A1到AP的数据,只需要50行。
使用Range函数,我删除了row51-100,我清除了相同行的内容,当我保存为CSV时,我发现行51-100如下:(只是逗号)。我不想在CSV中看到这些逗号。
,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,
AQ-AZ列也是如此。我不希望这些数据以CSV格式显示。我删除,使用范围功能清除内容,但这些AQ-AZ列在CSV文件中显示为“,,,,,,,,,,,,,,,,,,,,,”。
有没有办法将XLS保存为CSV,只有我希望在CSV文件中看到的Range。有没有办法控制进入CSV文件的范围?
简而言之,我想在CSV文件中看到50行的A1到AP列的数据。没有空的尾随“,”s。有办法吗?
答案 0 :(得分:3)
您描述的问题似乎是“最后一个细胞”问题。即使在删除行/列后,最后一个单元格也是数据的原始结尾。
以下是微软对此的评论:How to reset the last cell in Excel
我似乎记得这样做的程序化方式,但对于我的生活,我不记得如何。
看过那些信息后,也许你可以重新考虑如何做到这一点。
也许您可以只读取您需要的数据并自行编写。
即。对于范围中的每一行,将行作为一个值作为一个对象数组, 转换为string,string.join数组,并以分隔符作为逗号并追加 到.csv文件。
答案 1 :(得分:1)
清除其他答案中建议的内容对我不起作用,在新工作表中复制已填充的列并覆盖旧CSV的工作原理。
答案 2 :(得分:0)
只需在Excel中选择尾随空列,右键单击并选择:清除内容。然后保存。