題 查找具有相同內容的CSV文件的大小差異的原因


情況

我運行一個宏來格式化excel文件,並將格式化的Excel文件保存為.xlsx,文件大小為37 KB。我複制內容並將其保存到一個30 KB的新文件中。

問題

我想知道底層的差異是什麼,所以我嘗試使用Spreadsheet compare。沒有區別。所以我將文件轉換為CSV,當我在powershell中運行時:

$file1 = import-csv -Path "C:\Users\me\Desktop\Original_File.csv"
$file2 = import-csv -Path "C:\Users\me\Desktop\New_File.csv"
Compare-Object $file1 $file2 -property MPFriendlyName -IncludeEqual

它告訴我內容沒有差異。是否有命令或任何其他工具可以向我解釋底層差異是什麼?至於7 KB究竟是什麼?

邊注

這聽起來也很愚蠢,但是我打開了.xlsx Visual Basics,認為大小的差異是保存的宏,但事實並非如此,沒有保存的宏。


3
2017-09-14 18:19


起源


@root不是 - Simon
可以是較大副本中所有字段周圍的引號,導入CSV會刪除它們並僅顯示字段 內容,而不是“轉義字符”和其他csv特定的格式。 - Mokubai♦
使用記事本或類似方法直觀地比較文件以進行驗證。 - Mokubai♦
嘗試與Notepad ++進行比較(有一個比較插件可用 Plugins - Plugin manager)一定要打開 View - Show Symbols - Show all characters。這將顯示文檔中的所有字符,包括空格和行分隔符,它們佔用字節但不是嚴格的“內容”。 - Frank Thomas
記住這一點 .xlsx 文件(和 .docx 和 .pptx 文件)是zip格式。如果您製作每個文件的副本(或只是重命名),擴展名為 .zip,你將能夠打開它們,查看它們的組件,並比較它們的大小。如果只有一個或兩個組件的大小不同,請查看它們。即使你無法理解內容,他們的名字也可能會給你一些線索。 - G-Man


答案:


內容方面可能是相同的。因此,您的CSV比較可能是可靠的。為了弄清楚Excel文件之間可能有什麼不同,您可以執行以下操作:

  • 將每個Excel文件解壓縮到一個單獨的目錄(xlsx文件是包含XML文件的壓縮存檔)
  • 使用WinMerge之類的工具來比較目錄。這將突出顯示確切的XML文件和不同的行。

0
2018-06-14 14:15