CSV和XLSX之间有什么区别

时间:2017-06-22 07:54:58

标签: excel powershell csv

我正在尝试使用Excel表格在输出中获取一些列表,但是人们告诉“这与使用CSV不一样,因为每行是一个单独的对象”,“使用列表来获得您想要的输出”,它使情况复杂化,因为我现在不知道该怎么做。我正在使用PowerShell。有人可以解释我与XLSX和CSV实用程序的区别与导入示例如果可能吗?我看了一些文档但是没有帮助我理解。

.min.js

预期的输出

Column1   Column2   Column3   Column4
-------   -------   -------   -------
infra-98 infra-852 infra-44  infra-99
infra-62 infra-85  infra-8   infra-23
         infra-8   infra-852 infra-10
         infra-55            infra-70


Column1   Column2    Column3    Column4
-------   -------    -------    -------
infra-1   infra-85   infra-2     infra-99
infra-98  infra-55   infra-44    infra-23
infra-2              infra-1     infra-10
infra-62                         infra-70

1 个答案:

答案 0 :(得分:1)

使用Import-CSV cmdlet导入.CSV时,上一个问题会丢失上下文。然后,CSV的每一行都成为PowerShell对象。如果使用ImportExcel模块导入XLSX,情况也是如此。该结构不再与CSV文件或XLSX文件相同。它不再是电子表格,而是一组对象。

采用简单的.CSV文件

Col1,Col2
a,b
c,a

如果您使用Import-CSV PowerShell导入它,那么您将获得两个对象的数组。哪个可以更好地描绘如下:

@(
    [pscustomobject]@{
        Col1 = 'a'
        Col2 = 'b'
    }
    [pscustomobject]@{
        Col1 = 'c'
        Col2 = 'a' 
    }
)

因此它是一个两个独立的对象,具有列标题中的属性。

如果将其中一个对象中的属性设置为空字符串,则导出并将对象转换回行时。你将有一个空的“细胞”。

如何解决这个问题是以单个数组的形式读取列,然后在这些数组上执行比较逻辑,然后从这些更新的数组中创建一个全新的对象集合,然后导出。其他人在你的其他问题中已经回答了。