求助!!C#如何打开EXCEL文件并且进行修改???

first_speed 2009-03-10 12:44:03
现在本人需要一个写一个C#的程序,要求完成的功能是打开EXCEL文件并且可进行修改,最后还有保存,想了很久了但是没有思路,各位路过帮帮提提建议!!谢谢
...全文
1128 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
okxugang 2010-05-13
  • 打赏
  • 举报
回复
做个记号
anwsp 2009-04-06
  • 打赏
  • 举报
回复
mark
first_speed 2009-03-10
  • 打赏
  • 举报
回复
非常感谢,我先试试看,
first_speed 2009-03-10
  • 打赏
  • 举报
回复
我看过了,但是编译出错。。。。
不知道为什么。很郁闷,我是用的VS2008 和office2007 不知道是不是这里的原因,我在VS2005上也是运行不通过。
各位再给指导指导,
amwsse21q 2009-03-10
  • 打赏
  • 举报
回复
我这个是打开的EXCEL
amwsse21q 2009-03-10
  • 打赏
  • 举报
回复
想看 源代码 去
http://download.csdn.net/source/979175 下载
amwsse21q 2009-03-10
  • 打赏
  • 举报
回复
用下面方法前先要安装OFFICE .. 再引用EXCEL 和Microsoft.office.Core 组件


// 使打开文件对话框(openfiledialog)只显示Excel文件
this.openFileDialog1.FileName = "*.xls";
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{

// *********** 这里调用Open方法打开Excel工作簿 ****************
// 多数使用缺省值 (除了 read-only我们设置它为 true)
Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open(openFileDialog1.FileName, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, null, null);
// 取得工作簿(workbook)中表单的集合(sheets)
Excel.Sheets sheets = theWorkbook.Worksheets;
// 取得表单集合中唯一的一个表(worksheet)
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);
// 读取前10行,置入listview

for (int i = 1; i <= 10; i++)
{
Excel.Range range = worksheet.get_Range("A" + i.ToString(), "J" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value2;
string[] strArray = ConvertToStringArray(myvalues);
if (i != 1)
{

string[] items = strArray[0].Split(' ');

ListViewItem item = new ListViewItem();
item.ImageIndex = 0;
item.Text = items[0];

for (int b = 1; b < items.Length; b++)
{
if (items[b] != "")
{
item.SubItems.Add(items[b]);
}
}
listView1.Items.Add(item);
}
else
{
string[] columns = strArray[0].Split(' ');
foreach (string var in columns)
{
if (var != "")
{
listView1.Columns.Add(var, 70);
}
}
}
}
}
}

public string[] ConvertToStringArray(System.Array values)
{
// 生成新的字符串数组
string[] theArray = new string[values.Length];

// 把二维的数组转化为一维的字符串数组loop through the 2-D System.Array and populate the 1-D String Array
for (int i = 1; i <= values.Length; i++)
{
if (values.GetValue(1, i) == null)
theArray[i - 1] = "";
else
theArray[i - 1] = (string)values.GetValue(1, i).ToString();
}

return theArray;
}
宝_爸 2009-03-10
  • 打赏
  • 举报
回复
使用office com组件

参考:
http://www.yesky.com/435/1844435.shtml
http://www.knowsky.com/533329.html
EveryCase 2009-03-10
  • 打赏
  • 举报
回复
顶~~~~~~~~~~~~~~~
美丽大道 2009-03-10
  • 打赏
  • 举报
回复
记得最后要杀死excel进程啊 方法网上有 就不多说了 不然会开启很多很多的
hanyu0528 2009-03-10
  • 打赏
  • 举报
回复
先要完全安装OFFICE(主要是要选择.net支持) .. 再引用EXCEL 和Microsoft.office.Core 组件
之后用axWebbrwoer加载你所要操作的excel文件~!!!
之后可以用下面的方法来捕获加载的excel进程,从而对excel操作,并保存~!!

private Excel.Application eApp;
void axWebBrowser1_NavigateComplete2(object sender, DWebBrowserEvents2_NavigateComplete2Event e)
{
Object o = e.pDisp;
Object oDocument = o.GetType().InvokeMember("Document", BindingFlags.GetProperty, null, o, null);
Object oApplication = o.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDocument, null);
eApp = (Excel.Application)oApplication;

}




110,533

社区成员

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

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

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