gpt4 book ai didi

c# - 读取 Excel 单元格值并使用 C# 反序列化

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:49 25 4
gpt4 key购买 nike

我有一个 Excel 工作表,其中的值与此类似:

<Element id="1" Name="Some Name" Value="4" Unit="Some UNit" />

现在,我正在通过我的 C# 代码读取此 Excel。

我的应用程序中有一个类似于

的类文件
public class InputData{

[DataMember(Name = "id")]
public string id { get; set; }

[DataMember(Name = "Name")]
public string Name { get; set; }

[DataMember(Name = "Value")]
public string Value { get; set; }

[DataMember(Name = "Unit")]
public string Unit { get; set; }
}

我可以使用以下代码读取单元格值:

foreach (var worksheet in Workbook.Worksheets(@"C:\Test\Book1.xlsx"))
{
foreach (var row in worksheet.Rows)
{
foreach (var cell in row.Cells)
{
Console.WriteLine(cell.Text);
}
}
}

我关注了this这样做的链接。
现在我的要求是反序列化单元格值并形成一个 InputData 列表。

List<InputData> lst = new List<InputData>();

InputData inputData = new InputData;
inputData.id ="" ; //assign value
inputData.Name ="" ; //assign value
inputData.Value ="" ; //assign value
inputData.Unit ="" ; //assign value

lst.Add(inputData);

我想在循环中添加这个,但我不知道如何反序列化这个单元格值,因为它不完全是 XML 格式。我能想到的唯一粗略的方法是根据空格拆分并访问值。

是否有更好的解决方案可用?

注意事项

我之前不清楚,但我的意思是我的 Excel 中的每个单元格都有这种相似类型的数据。我正在尝试遍历每个单元格并制作一个列表。

编辑

foreach (var row in worksheet.Rows)
{
foreach (var cell in row.Cells)
{
Console.WriteLine(cell.Text);

Console.WriteLine(XDocument.Parse(cell.Text).Root.Attribute("id").Value);

Console.ReadLine();
}
}

在第一行,它打印了上面提到的内容。

<Element id="1" Name="Some Name" Value="4" Unit="Some UNit" />

最佳答案

您可以使用XDocument.Parse,例如:

inputData.id = XDocument.Parse(cell.Text).Root.Attribute("id").Value

关于c# - 读取 Excel 单元格值并使用 C# 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54942044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com