C# 读取EXCEL文档中含公式的单元格的值和实现选择性粘贴

c_cwh 2011-05-17 04:03:40
比如我现在有一个合并单元格,其中是一个公式,现在我想通过C#读取这个公式计算后的值,请教如何写代码?

另外我如何用c#实现类似于EXCEL的 复制---选择性粘贴-数值 这样的功能?

网上找来很久没答案,希望论坛里的高手赐教!谢谢!
...全文
834 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yao2004jessica 2011-05-18
  • 打赏
  • 举报
回复
操作office用range
机器人 2011-05-18
  • 打赏
  • 举报
回复
app.DisplayAlert = false;
c_cwh 2011-05-18
  • 打赏
  • 举报
回复
谢谢楼上,用这个代码可以,再请教一个问题,我的excel操作后有了改变,我希望退出是不要出现提示保存和清空剪贴板之类的对话框,应该如何实现?
简单说,凡是excel的提示框我都不希望出现
机器人 2011-05-18
  • 打赏
  • 举报
回复
上面 A1 里是公式 =Now(), A2 里是公式 =1+1

机器人 2011-05-18
  • 打赏
  • 举报
回复
怎么会不行呢,没好好试吧。



using Excel = Microsoft.Office.Interop.Excel;

Excel.Application app = null;
Excel.Workbook book = null;
Excel.Worksheet sheet = null;

try
{
app = new Excel.Application();
book = app.Workbooks.Open(@"d:\sheet1.xls");
sheet = book.Sheets[1];
MessageBox.Show(((DateTime)sheet.get_Range("A1").Value).ToShortDateString());

sheet.get_Range("A2").Copy();
sheet.get_Range("B2").PasteSpecial(Excel.XlPasteType.xlPasteValues);

MessageBox.Show(Convert.ToString(sheet.get_Range("B2").Value));
book.Close(true);
app.Quit();
}
finally
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
GC.Collect();
}

c_cwh 2011-05-18
  • 打赏
  • 举报
回复
谢谢楼上提供的思路,我试了几次没成功,期待后面的DX
机器人 2011-05-18
  • 打赏
  • 举报
回复
1. Range.Value
2. Range.PasteSpecial Paste:=xlPasteValues

这些都是可以通过录制宏得到,类似的VB语句再改写成C#的。
c_cwh 2011-05-18
  • 打赏
  • 举报
回复
难道这个问题很麻烦?自己顶,期待高手出现!

110,539

社区成员

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

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

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