我是c#的新手,我必须将excel文件转换为带有简单节点的xml。到目前为止,我已经用互操作完成了它。我编写了部分代码来打开xls,关闭xls,通过Get_range方法获取单元格的值,然后释放对象。
但是,现在我必须输出一个xml文件,我必须转到一个特定的单元格并打印一个节点和一个单元格的值。它也可以是一个简单的纯文本,我可以输出,或者我们也可以使用linq Xelement和Xattributes。我想在使用get_range:
时xlWorkSheet.get_Range("B3", "B3").Value2
我需要在excel中打印相同的内容。
我不知道该怎么做,请指导我。生成的xml应如下所示:
<WpData>
<WpType>Design</WpType>
<ReviewType>half</ReviewType>
<References>[1] https:///SysService/SysService_AsrDet/trunk/_doc/20_Design
</References>
<Author>deh</Author>
<Reviewer>abc</Reviewer>
</WpData>
提前感谢。
答案 0 :(得分:0)
您正在搜索xml序列化。您应该像这样定义类:
[Serializable]
public class WpData
{
public string WpType { get; set; }
public string ReviewType { get; set; }
public string References { get; set; }
public string Author { get; set; }
public string Reviewer { get; set; }
}
注意课堂上的Serializable
属性。
然后,您应该从Excel数据填充对象并使用XmlSerializer
:
WpData xmlSerializibleObject = new WpData();
//....
//here you should fill it from excel based on your data
//And then you can just serialize it to string
string xmlString;
XmlSerializer xmlSerializer = new XmlSerializer(xmlSerializibleObject.GetType());
using(StringWriter textWriter = new StringWriter())
{
xmlSerializer.Serialize(textWriter, xmlSerializibleObject);
xmlString = textWriter.ToString();
}
xmlString
将拥有您需要的xml,您可以从excel中正确填充对象。