有没有办法获取电子表格并将其转换为下面的xml文件?
<?xml version="1.0"?>
<ArrayOfBusiness xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Business>
<Name>Company Name 1</Name>
<AddressList>
<Address>
<AddressLine>123 Main St.</AddressLine>
</Address>
</AddressList>
</Business>
<Business>
<Name>Company Name 2</Name>
<AddressList>
<Address>
<AddressLine>1 Elm St.</AddressLine>
</Address>
<Address>
<AddressLine>2 Elm St.</AddressLine>
</Address>
</AddressList>
</Business>
</ArrayOfBusiness>
答案 0 :(得分:2)
我把它放在LinqPad中,它完成了你需要的工作。如果您从未使用过LinqPad ......那么现在是开始的好时机。
var csvs = new List<string>();
csvs.Add( "Company Name 1,123 Main St.");
csvs.Add("Company Name 2,1 Elm St.,2 Elm St.");
var xml =
(from c in csvs
let split = c.Split(',')
select // split
new XElement("ArrayOfBusiness",
new XElement("Business",
new XElement("Name", split[0] ),
new XElement("AddressList",
new XElement("Address"
,
(from s in split.Skip(1) // skip the first split
select
new XElement("AddressLine", s))
)
)))); // <-- is it LISP?
xml.Dump();
结果:
<ArrayOfBusiness>
<Business>
<Name>Company Name 1</Name>
<AddressList>
<Address>
<AddressLine>123 Main St.</AddressLine>
</Address>
</AddressList>
</Business>
<Business>
<Name>Company Name 2</Name>
<AddressList>
<Address>
<AddressLine>1 Elm St.</AddressLine>
<AddressLine>2 Elm St.</AddressLine>
</Address>
</AddressList>
</Business>
</ArrayOfBusiness>
这不完全是你想要的,但在功能上与我相当。可能需要在LINQ中进行一些调整。
使用以下代码写入文件:File.WriteAllText(@"c:\temp\addresses.xml", xml.ToString());
答案 1 :(得分:0)
将.csv文件解析为“Business”对象应该很简单。
然后是一个使用XmlSerializer类生成xml的简单案例。
答案 2 :(得分:0)
我会说是的,但是看不到CSV文件很难说。
如果你的CSV是这样的:
姓名,地址1,地址2
公司名称1,123 Main St。,
公司名称2,1 Elm St.,1 Elm St。
您可以轻松地将其解析为一个类。
class Business
{
public string Name { get; set; }
public List<Address> AddressList { get; set; }
}
class Address
{
public string AddressLine { get; set; }
}
(未测试的)