XML格式
<DataS>
<User>
<Attribute>
<Name>名字</Name>
<Value>A</Value>
</Attribute>
<Attribute>
<Name>性名</Name>
<Value>男</Value>
</Attribute>
</User>
<Address>
<Name>A</Name>
<Value>北京</Value>
</Address>
</DataS>目录里的XML有几十个,每个文件按目期命名,比如:
20100926-100201.XML(2010年,9月26号10点02分01秒)
20100926-100302.XML请问如何把所有XML的数据取出来,存成EXCEL?最好有代码!!
谢谢!
<DataS>
<User>
<Attribute>
<Name>名字</Name>
<Value>A</Value>
</Attribute>
<Attribute>
<Name>性名</Name>
<Value>男</Value>
</Attribute>
</User>
<Address>
<Name>A</Name>
<Value>北京</Value>
</Address>
</DataS>目录里的XML有几十个,每个文件按目期命名,比如:
20100926-100201.XML(2010年,9月26号10点02分01秒)
20100926-100302.XML请问如何把所有XML的数据取出来,存成EXCEL?最好有代码!!
谢谢!
解决方案 »
- 在项目c#引用c++类,参数传递的问题。
- 请教 VS 2010 ultimate 默认安装,没有 Silverlight 开发环境?
- 关于ObjectDataSource的TypeName属性的问题
- asp.net 中如何调用一个.net 的winform
- 数据显示问题!
- 急求~~ asp页面编码问题,页面设置编码为big5 但从数据库提取的数据在页面显示为乱码。
- 100分!求一本详细介绍分析n层结构的好书或资料!!
- 初学者请求大虾帮忙!!一个显示用户注册页面的程序~
- 有谁知道OA中日期与公章的解决方案?
- +++请问这样一个button的css效果要怎么做出来?++++
- 实现DIV的拖动效果
- 谁看过beerhouse的项目代码?我打开的时候一直报错,那个项目数据库连接该怎么改才行?
dataset 生成excel
风行网络电影
皮皮播放器下载
string[] ss = Directory.GetFiles(MapPath("存放xml的文件夹名")); 获得 改文件夹下所有的文件名返回成数组
根据数组循环获得 文件名
再用文件读取xml文件 存入dataset 再生成excel
if(!IsPostBack)
{
string[] ss = Directory.GetFiles(MapPath("dataxml"));
DataSet ds = new DataSet();
for (int i = 0; i < ss.Length; i++)
{
ds.ReadXml(ss[i].ToString().Trim());
}
DataTable dt = ds.Tables[0];
StringWriter sw = new StringWriter();
sw.WriteLine("Schemeid,MailCount");
foreach (DataRow dr in ds.Tables[0].Rows)
{
sw.WriteLine(dr["Schemeid"].ToString() + "," + dr["MailCount"].ToString());
}
sw.Close(); string name = DateTime.Now.ToString() + ".csv";//以当前时间为excel表命名 Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(name)); Response.ContentType = "vnd.ms-excel.numberformat:yyyy-MM-dd "; Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); Response.Write(sw); Response.End();
}
{
FileInfo fi = new FileInfo(file);
DataSet ds = new DataSet();
ds.ReadXml(file);
//或直接遍历XML获取数据,打开EXCEL模板赋值
}public static bool ExportToExcel(DataTable table, string excelName, int[] columnIndexs, string[] columnHeads)
{
Excel.ApplicationClass oExcel = new Excel.ApplicationClass();
Excel.Workbook obook = null;
Excel.Worksheet oSheet = null;
Excel.Range range = null;
#endregion
try
{
obook = oExcel.Workbooks.Add("");
oSheet = (Excel.Worksheet)obook.Worksheets[1];
int rCount, cCount;
rCount = table.Rows.Count;
cCount = table.Columns.Count;
object obj = System.Reflection.Missing.Value; if (cCount < columnIndexs.Length || cCount < columnHeads.Length)
{
throw new ArgumentOutOfRangeException("columnIndexs 与 columnHeads 长度必须一致。");
}
for (int i = 1; i <= columnIndexs.Length; i++)
{
range = (Excel.Range)oSheet.Columns.get_Item(i, obj);
range.NumberFormatLocal = "@";
}
for (int c = 0; c < columnIndexs.Length; c++)
{
oSheet.Cells[1, c + 1] = columnHeads[c];
for (int r = 1; r <= rCount; r++)
{
oSheet.Cells[r + 1, c + 1] = table.Rows[r - 1][columnIndexs[c]].ToString();
}
}
obook.SaveCopyAs(excelName);
obook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
return true;
}
catch (Exception ex)
{
throw ex;
}
finally
{
ystem.Runtime.InteropServices.Marshal.ReleaseComObject(range);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(obook);
oExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);
GC.Collect();
}
}
document.Load(@"aa.xml");
XmlNode basicNode = document.DocumentElement;
foreach (XmlNode node in basicNode.ChildNodes)
{
//在这里判断
if (node.Attributes["ID"].Value.ToString().Trim() == "001")
{
foreach (XmlNode pnode in node.ChildNodes)
{
switch (pnode.Name)
{
//InnerText取值
case "Last_Name":
string lastname = pnode.InnerText;
break; default:
break;
}
}
}
}找到一个代码,可用,但只是取一个文件的一个值,如何取所有文件的一个值?
dom.LoadXml(xml);
foreach (System.Xml.XmlNode node in dom.ChildNodes)
{
if(node.Name !="xml")
Response.Write(GetNode(node));
}
} string GetNode(System.Xml.XmlNode node)
{
string str = node.InnerText;
if (node.HasChildNodes)
{
str = "";
foreach (System.Xml.XmlNode n in node.ChildNodes)
{
str += GetNode(n);
}
}
return str;
}
我XML地址是 c:\xmlfiles\
里面有
20100926-100201.XML
20100926-100301.XML
20100926-100621.XML
20100926-110522.XML
.....
我想把所有的XML中的"地址"节点的内容输出到XLS