c#怎么操作excel,我搞N天到底怎么引用的。using哪些呢?

c#怎么操作excel,我搞N天到底怎么引用的。using哪些呢?我是winfrom的用oledb的方式成功了,现在想用那种直接excel对象的,到底要引用哪些东西啊。除... c#怎么操作excel,我搞N天到底怎么引用的。using哪些呢?
我是winfrom的用oledb的方式成功了,现在想用那种直接excel对象的,到底要引用哪些东西啊。除了这些呢?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
展开
 我来答
zhaochunyu0104
推荐于2016-07-15 · 超过14用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:29.1万
展开全部
【IT168技术文档】

引用的com组件:Microsoft.Office.Interop.Excel.dll,一般安装完office就有这个文件。
新建一个C#项目,添加前面的dll到引用里面来
读取excel数据到dataset

private void OpenExcel(string strFileName)
{
object missing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.ApplicationClass appc = new Microsoft.Office.Interop.Excel.ApplicationClass();//lauch excel application
if (appc == null)
{
MessageBox.Show("can't access excel");
}
else
{
// Microsoft.Office.Interop.Excel.Workbook wb = appc.Application.Workbooks.Add(true);
//open excel file
Microsoft.Office.Interop.Excel.Workbook wb = appc.Application.Workbooks.Open(strFileName, missing, false, missing, missing, missing, missing, missing, missing, true, missing, missing, missing, missing, missing);
//get first worksheet
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets.get_Item(1);
//get range from A1 to A3 Microsoft.Office.Interop.Excel.Range rng = ws.Cells.get_Range("A1", "A3");
object[,] arrValue = (object[,])rng.Value2;//get range's value
string strValue = "";
for (int i = 1; i <= arrValue.GetLength(0); i++)
{
strValue +="Cell"+i+":"+ arrValue[i, 1].ToString()+System.Environment.NewLine;
}
MessageBox.Show(strValue.ToString());//show value
}
appc.Quit();
appc = null;
}

dataset导出到excel

public bool SaveFP2toExcel(string Path)
{
try
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
System.Data.OleDb.OleDbCommand cmd=new OleDbCommand ();
cmd.Connection =conn;
//cmd.CommandText ="UPDATE [sheet1$] SET 姓名='2005-01-01' WHERE 工号='日期'";
//cmd.ExecuteNonQuery ();
for(int i=0;i<fp2.Sheets [0].RowCount -1;i++)
{
if(fp2.Sheets [0].Cells[i,0].Text!="")
{
cmd.CommandText ="INSERT INTO [sheet1$] (工号,姓名,部门,职务,日期,时间) VALUES('"+fp2.Sheets [0].Cells[i,0].Text+ "','"+
fp2.Sheets [0].Cells[i,1].Text+"','"+fp2.Sheets [0].Cells[i,2].Text+"','"+fp2.Sheets [0].Cells[i,3].Text+
"','"+fp2.Sheets [0].Cells[i,4].Text+"','"+fp2.Sheets [0].Cells[i,5].Text+"')";
cmd.ExecuteNonQuery ();
}
}
conn.Close ();
return true;
}
catch(System.Data.OleDb.OleDbException ex)
{
System.Diagnostics.Debug.WriteLine ("写入Excel发生错误:"+ex.Message );
}
return false;
}

参考资料: http://tech.sina.com.cn/s/2008-06-23/1046704200.shtml

北京的金山上
2008-10-29 · 超过31用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:60.5万
展开全部
可以添加引用,打开“添加引用”小窗体,选择“COM”选项卡
查找:Microsoft Excel .....开头的两项,都选择就行了。

另:如果你的OFFICE是03或者07的这里面的选项会有点不同
比如:如果您安装07版本,Microsoft Excel 12.0 Object Library
如果您安装03版本,Microsoft Excel 11.0 Object Library
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cyym1985
2008-10-29 · 超过14用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:27.6万
展开全部
引用Microsoft.Office.Interop.Excel.dll
不用引到 dataSet就可以操作了。

用这样操作Excell在你本机上用还可以,一用服务器的就麻烦了。要在好多个地方设置权限之类的。

不过用一些 。ocx的控件操作就好用多了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
peak169368
2008-10-28 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:109万
展开全部
using Microsoft.Office.Interop.Excel
office的一个COM组件,把这个dll引用至bin目录下即可,它包含一些OFFICE的基本操作方法和接口。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式