在c#.net如何进行excel表格中的公式操作?

baobeidegaoxing 2006-04-27 10:46:59
题目讲得有些绕口,就是通过从数据库中读取excel前几列数据,然后通过一个公式(需要建立在excel里面,可以根据需要修改该),对这几列数据进行操作,从而得出一个值,再将这个值写入数据库。
如:excel里面,A1中的数据是5,A2中的数据是11,A3中的数据是2,A4中的公式是(A1+A2)/A3,然后在A4中得到结果,其中A1,A2,A3中的数据是读取数据库来的,而A4的结果最后写入数据库。
数据库采用sql2000


哪位高手知道,帮忙求解一下,谢谢
...全文
1148 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyangt 2006-04-28
  • 打赏
  • 举报
回复

Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
Excel.Range oRng;
try
{
//Start Excel and get Application object.
oXL = new Excel.Application();
oXL.Visible = true;
oWB = (Excel._Workbook)(oXL.Workbooks.Add( Missing.Value ));
oSheet = (Excel._Worksheet)oWB.ActiveSheet;
//注意以下
oRng = oSheet.get_Range("D2", "D6");//设置列范围
oRng.Formula = "=RAND()*100000";//设置公式
oRng.NumberFormat = "$0.00";//设置格式
}
catch
{

}
Eddie005 2006-04-28
  • 打赏
  • 举报
回复
由于这个计算公式是事前未知的,所以要调用excel类库读出计算公式
private Excel._Worksheet objSheet;
private Excel.Range range;
private Excel.Application objApp = new Excel.Application();
objSheets = objBook.Worksheets;
objSheet = (Excel._Worksheet)objSheets.get_Item(1);
range = objSheet.get_Range(GetAddress(行,列), System.Reflection.Missing.Value);
range.Formula=formula;

/// <summary>
/// 得到单元格的地址
/// </summary>
/// <param name="row">行</param>
/// <param name="col">列</param>
/// <returns>返回地址</returns>
public string GetAddress(int row,int col)
{
string addressStr="";
col=col-1;
int num=col/26;
char addressChr=Convert.ToChar(col+65);

for(int i=0;i<num;++i)
{
addressStr=addressStr+"A";
}
addressStr=addressStr+addressChr+row.ToString();
return addressStr;
}
Eddie005 2006-04-28
  • 打赏
  • 举报
回复
把Excel的数据用ado.net读到DataTable,然后
DataColumn newCol = new DataColumn();
newCol.ColumnName = "小计";
newCol.Expression = "([field1] + [field2])/ [field3]";
dt1.Columns.Add(newCol);
xxqq0824 2006-04-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/xxqq0824/
参看excel开发专栏

111,098

社区成员

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

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

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