-1

我正在比较两个 csv 文件并区分记录是否已添加或删除。我能够知道是否已添加或删除项目,但我想显示插入或删除的记录是什么。我有一篇不同但相关的帖子,Mauricio Gracia 帮助了很多比较两个 excel 文件的差异

 if (fileB.excelRows.Count() < fileA.excelRows.Count())
                    {
                        string result = "";
                        foreach (ExcelRow rowA in fileA.excelRows)
                        {

                            if (!fileB.ContainsHash(rowA.rowHash))
                            {
                                result =  rowA.ToString();
                            }

                        }
                        MessageBox.Show("Files are NOT the same. Data was REMOVED.\n" + result);
                    }
                    else
                    {
                        var addedItems = fileB.excelRows.Except(fileA.excelRows);
                        MessageBox.Show("Files are NOT the same. Data was ADDED.\n"+ addedItems.ToString());

                    }
                }

现在写我得到的消息是ExcelFileReader.ExcelRow,但我没有看到被删除的实际记录。

我尝试使用 except 运算符,但我得到了相同的字符串消息。

4

1 回答 1

1

你不能只是 ToString() excel 行。它是一个对象,您需要遍历对象属性并将所需的项目转换为字符串表示形式。像下面这样的东西。

    foreach (ExcelCell cell in excelRow.AllocatedCells)
    {
        if (cell.Value != null)
            Console.Write("{0}({1})", cell.Value, cell.Value.GetType().Name);

        Console.Write("\t");
    }
于 2013-08-27T15:04:24.187 回答