C# WINFORM, 如何将excel作为数据源,写入有固定格式的xml或txt文件。求教~如能有代码感激不尽啊。

最后的xml或txt的结果如下:

<?xml version="1.0" encoding="gb2312" ?>
<K_ROOT>
<K_HEAD>
<C_CO>4123</TRADE_CO>
<C_RDATE>20110327</RDATE>
<MEMO>GGDER</MEMO>
</K_HEAD>
<K_LIST Count = "2">
<K_ITEM>
<COP_G_NO>A5</COP_G_NO>
<CONTR_ITEM>2</CONTR_ITEM>
<WH_LOC>WH1</WH_LOC>
<G_QTY>1.0</G_QTY>
<G_UNIT></G_UNIT>
<QTY_1>1.0</QTY_1>
</K_ITEM>
<K_ITEM>
<COP_G_NO>A6</COP_G_NO>
<CONTR_ITEM>3</CONTR_ITEM>
<WH_LOC>WH1</WH_LOC>
<G_QTY>1.0</G_QTY>
<G_UNIT>KG</G_UNIT>
<QTY_1>1.0</QTY_1>
</K_ITEM>
</K_LIST>
</K_ROOT>
怎么不能插入图片?。。。excel表格样本如下, 第一行为表头。 能不能提供基本的代码供我参考,小弟接触C#时间很短,求教了。。。
C_CO___C_RDATE______MEMO____COP_G_NO___CONTR_ITEM__WH_LOC__G_QTY____G_UNIT__QTY_1
4123___20110327_____GGDER___A5_________2___________WH1_____1__________________1
____________________________A6_________3___________WH1_____1_________KG_______1

提供一个 思路 :
1.用 ado.net 的方式 连接 excel
2.将 数据 读到 DataSet 中。
3.循环 拼 字符串
4.将 字符串保存 成 为 文本 文件 。xml 的话 你的后缀 就为.xml 文本 类似。追问

我参考过许多资料才来提问,可惜由于是新手时间又赶,能不能有相应代码供参考,感激不尽。

追答

//
//1.读取 excel 到 DataTable 中
DataTable dt = ReadExcelToTable();
StringBuilder sbxml = new StringBuilder();
sbxml.Append(" ");
//自己想下面也拼下
/*

4123
20110327
GGDER

*/
//下面 循环
foreach (DataRow dr in dt)
{

sbxml.Append(" ");
sbxml.AppendFormat(" {0},dr[COP_G_NO]);
/*2
WH1
1.0

1.0*/
sbxml.Append(" ");

sbxml.AppendFormat("");
}
sbxml.Append("");
//保存
StreamWriter Sw = new StreamWriter("文件路径.xml");
Sw.Write(sbxml.ToString());
Sw.Close();

至于 如何 到 DataTable 中 你就再 查下资料 吧 ,简单的很。。

追问

高手 我用一个button 一个textbox 一个dataGridView还有一个comboBox 外加openfiledialog,通过click事件把excel数据读出来了而且已经显示在datagridview里了,后面我就没有思路了,麻烦看下图片上的代码是否正确?(这字数不够。。。图片另存下来看得清的)是否已经将excel读到datatable了?然后怎么进行循环将excel单元格的数据有规律地写进xml呢?

因为是新手,语法真心不熟悉,能不能帮忙给具体一点了,拜托啊~~

追答

唉,这哥们 ,上面的代码 已经很清楚了,你的 DataTable 也弄出来了。
你就把我上面给你写的代码 再 完善下就可以了。
或这 你就直接 复制下来 在 VS 里面 调试下 就可以了。。。
关键 逐行 把 每个 字段 对应的 值 给 写到 对应的 XML字符串 中。。。。。

追问

谢谢兄弟~可以正确地输出xml了,最后一点小问题。
用sbxml.Append写入xml上下2条数据之间怎么进行换行的?
我现在输出的是一整条的
412320110327GGDERA52。。。

追答

sbxml.AppendLine("")
这个函数可以添加一行记录,并在 结尾加上 换行符

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-28
使用oledb连接exce
相似回答