我正在使用Windows应用程序,在那个Windows应用程序中,我已成功导出网格视图到excel。现在我想计算特定单元格中excel表格中的单元格总和...我尝试了但它却异常...... 谁能告诉我我做错了什么? 如何解决这个问题?或告诉我任何其他解决办法。
提前致谢...
我的代码是:
wksheet.get_Range(Type.Missing,strSumOfTargetCell + RowCount).Formula =“= SUM(”+ strRowValue +“:”+ strColumnRangeValue +“)”;
答案 0 :(得分:1)
首先,阅读我的评论。 其次,如果您仍然从excel计算单元格,我认为您需要编写一个代码,该代码读取.xlsx文件并计算一些值。以下示例代码可以读取excel doc,并绑定到DataTable。
您的代码将是这样的。在读完整个excel细胞后,您获得了所有细胞值。 (当你创建object [] row = new obejct [])
时using (OpenFileDialog openFileFromDialog = new OpenFileDialog())
{
openFileFromDialog.Filter = "Excel Document|*.xls";
openFileFromDialog.Title = "Select FIle";
openFileFromDialog.ShowDialog();
if (String.IsNullOrEmpty(openFileFromDialog.FileName))
return;
using (OleDbConnection connection = new OleDbConnection { ConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;
Data Source={0};Extended Properties=Excel 12.0;", openFileFromDialog.FileName) })
{
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = String.Format("SELECT * FROM [{0}]", sheetName);
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
using (DbDataReader dr = command.ExecuteReader())
{
while (dr.Read())
{
object[] row = new object[]
{
dr[1],
dr[2],
dr[3]
};
YOURDATATABLE.Rows.Add(row);
}
}
}
}
}
在yourdatatable.Rows.Add()的一部分,您可以进行计算而不是制作新的dataTable,例如。
decimal Sum = 0;
while(dr.Read())
{
Sum += (ConvertToDecimal(dr[1]) + ConvertToDecimal(dr[2])) * ConvertToDecimal(dr[3])
}