XElement 节点 自动生成xmlns标签的问题

mycodeis0000 2013-05-31 10:00:00
我的问题是新添加的C1节点时自动生成了xmlns属性
<c r="C1" t="s" xmlns="">
<v>1</v>
</c>
导致我重新打开EXCEL时没有显示我新增C1单元格的值
通过打开EXCEL sheet1.xml将xmlns=""属性去除后
再打开EXCEL就能显示了


代码:

XDocument xdoc = XDocument.Load(read);List<XElement> lst = xdoc.Document.Descendants().Where(p => p.Name.LocalName == "row" &&Convert.ToInt32(p.Attribute("r").Value) == 1).ToList();XElement xelementChild = new XElement("v");xelementChild.Value = "1";XElement xelement = new XElement("c",xelementChild); xelement.SetAttributeValue("r", "C1");xelement.SetAttributeValue("t", "s"); lst[0].Add(xelement);


生成的文件

<row r="1" spans="1:2" x14ac:dyDescent="0.15" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> <c r="A1" t="s"> <v>0</v> </c> <c r="B1" t="s"> <v>1</v> </c> <c r="C1" t="s" xmlns=""> <v>1</v> </c></row>

...全文
491 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mycodeis0000 2013-06-02
  • 打赏
  • 举报
回复
找到了,不过还是得分享下 现在前面定义命名空间 XNamespace aw = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; 然后将改命名空间按下面的方式加入节点 XElement xelName = new XElement(aw+"ElementName");
mycodeis0000 2013-05-31
  • 打赏
  • 举报
回复
代码: XDocument xdoc = XDocument.Load(read); List<XElement> lst = xdoc.Document.Descendants().Where(p => p.Name.LocalName == "row" &&Convert.ToInt32(p.Attribute("r").Value) == 1).ToList(); XElement xelementChild = new XElement("v"); xelementChild.Value = "1"; XElement xelement = new XElement("c",xelementChild); xelement.SetAttributeValue("r", "C1");xelement.SetAttributeValue("t", "s"); lst[0].Add(xelement);
mycodeis0000 2013-05-31
  • 打赏
  • 举报
回复
代码重新发下:


XDocument xdoc = XDocument.Load(read);List<XElement> lst = xdoc.Document.Descendants().Where(p => p.Name.LocalName == "row" &&Convert.ToInt32(p.Attribute("r").Value) == 1).ToList();XElement xelementChild = new XElement("v");xelementChild.Value = "1";XElement xelement = new XElement("c",xelementChild);                    xelement.SetAttributeValue("r", "C1");xelement.SetAttributeValue("t", "s"); lst[0].Add(xelement);


<row r="1" spans="1:2" x14ac:dyDescent="0.15" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">      
<c r="A1" t="s">        
<v>0</v>     
 </c>      
<c r="B1" t="s">        
<v>1</v>      
</c>      
<c r="C1" t="s" xmlns="">    
<v>1</v>     
</c>
</row>

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧