winfrom程序(c#)里面怎么怎么操作wps(excel)啊?求源代码,可以运行的,实现增删改查了的(高手讲!)

求一个excel.dll组件代码(自己写的)里面提供增删改查方法,我要代码!我愿再加分

XmlDocument dom = new XmlDocument();
dom.Load("books.xml");//加载当前目录下xml文件
XmlNode root = dom.DocumentElement;//根元素
//xpath表达式,类似于select 语句,用来查节点
//语句类似DOS路径的表示方式
// /books/book
// book
// //book 取出所有book子元素,不管在哪个层
// book[@cid='a'] 查询book cid属性值
// book[name='C++'] 查询 book /name的值
XmlNodeList nodes = root.SelectNodes("book[name='C++']");
foreach (XmlNode node in nodes)
{
// Console.Write(node.Attributes[0].Name + ":" + node.Attributes[0].Value);//打印属性名和值

foreach (XmlNode child in node.ChildNodes)
{
Console.Write(" " + child.Name + ":" + child.InnerXml);
}
Console.WriteLine("");
}

//添加修改删除节点
XmlAttribute id = dom.CreateAttribute("id");
id.Value = "5";
//XmlNode bookC = dom.CreateNode(XmlNodeType.Element, "book", "");//创建一个book节点
XmlElement bookC = dom.CreateElement("book");
bookC.Attributes.Append(id);
XmlElement nameC = dom.CreateElement("name");
nameC.InnerText = "c语言";
bookC.AppendChild(nameC);//添加子元素
XmlElement publisherC = dom.CreateElement("publisher");
publisherC.InnerText = "交大出版社";
bookC.AppendChild(publisherC);
root.AppendChild(bookC);

//删除节点,先要查到节点
XmlNode delNode = dom.SelectSingleNode("/books/book[@id='5']");
XmlElement newNode=dom.CreateElement("book");
newNode.InnerText="abcde";
//root.RemoveChild(delNode); //移除节点
//修改
newNode.FirstChild.InnerText = "C语言大全";
root.ReplaceChild(newNode, delNode);

dom.Save(Environment.CurrentDirectory+"/books.xml");//存盘不论是增删改都要用save保存一下
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-22
操作表格类型的见我的博客http://ksca00130318.blog.163.com/blog/static/100661995201089010450/
操作数据表类型的,见以下代码
string strCon = string.Empty;
if (type == 2003)
{
strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + filepath + ";Extended Properties=Excel 8.0";
}
if (type == 2007)
{//filepath为excel表的位置
strCon = " Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source =" + filepath + ";Extended Properties=Excel 12.0";
}
DataSet ds;
int nameIndexCol = -1;
int mobilenumIndexCol = -1;

OleDbConnection conn = new OleDbConnection(strCon);
conn.Open();
//获取第一个工作簿的名称
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string tablename = dt.Rows[0][2].ToString().Replace("'","");//第二列是表名

string sql = "select * from ["+tablename+"]";

OleDbDataAdapter myCommand = new OleDbDataAdapter(sql, strCon);
ds = new DataSet();
myCommand.Fill(ds, "[Sheet1$]");
conn.Close();
DataTable dTable = ds.Tables[0];
for (int j = 0; j < dTable.Columns.Count; j++)
{
string colCap = dTable.Columns[j].Caption;
if (colCap == "姓名")
{
nameIndexCol = j;
if (mobilenumIndexCol != -1)
{
break;
}
}
if (colCap == "手机号")
{
mobilenumIndexCol = j;
if (nameIndexCol != -1)
{
break;
}
}
}

if (mobilenumIndexCol == -1 || nameIndexCol == -1)
{
MessageBox.Show("通讯录格式不正确!\n\r 未找到列标题为(姓名)和(手机号)的列", "系统提示", MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
for (int i = 0; i < dTable.Rows.Count; i++)
{
string name = dTable.Rows[i][nameIndexCol].ToString();
string mobilenum = dTable.Rows[i][mobilenumIndexCol].ToString();
}
}
catch (System.Exception ee)
{
MessageBox.Show(ee.Message);
}

}
第2个回答  2012-03-06
一定要用Excel吗,当你的数据有存在数字时,数据会丢失,建议你用二楼的XML追问

这个我知道该怎么办!我就是不知道怎么操作excel表!你能写个excel.dll给我吗?

追答

你说的这个,我不会,不好意思

winfrom程序(c#)里面怎么怎么操作wps(excel)啊?求源代码,可以运行的...
dom.Save(Environment.CurrentDirectory+"\/books.xml");\/\/存盘不论是增删改都要用save保存一下

相似回答