Visual studio 2010 在由VB.NET和SQL生成的Excel电子表格底部添加动态总计行
我有一个用SQL和VB.NET动态生成的Excel电子表格。列(2)的数量永远不会改变,但是记录的数量将根据用户指定的数据而改变。SQL运行并填充电子表格后,我需要在表的底部添加一条记录,该记录显示第2列中记录的总数(int值) 比如: xlSheet.Range(底部记录,第1列)=“总计” xlSheet.Range(底部记录,第2列)=第2列中所有上述记录的总和 我正在使用VS2010和Excel 2010 我的桌子像这样:Visual studio 2010 在由VB.NET和SQL生成的Excel电子表格底部添加动态总计行,visual-studio-2010,row,excel-2010,add,Visual Studio 2010,Row,Excel 2010,Add,我有一个用SQL和VB.NET动态生成的Excel电子表格。列(2)的数量永远不会改变,但是记录的数量将根据用户指定的数据而改变。SQL运行并填充电子表格后,我需要在表的底部添加一条记录,该记录显示第2列中记录的总数(int值) 比如: xlSheet.Range(底部记录,第1列)=“总计” xlSheet.Range(底部记录,第2列)=第2列中所有上述记录的总和 我正在使用VS2010和Excel 2010 我的桌子像这样: *Group* *Refered Cases* 4H B
*Group* *Refered Cases*
4H BOSS 0
4H BSG 0
4H SALES AND MKTG 0
ACCOUNTS RECEIVABLE 0
ASSET MANAGEMENT 0
AUDIT 0
BOSS 0
CORPORATE BSG 0
CUSTOMER SUPPORT 0
NETWORK ENGINEERING 0
PRODUCTION ENGINEERING 0
PRODUCTION OPERATIONS 0
SECURITY 0
SNFAL PRODUCT TEAM 0
VOICE SERVICES 0
XEROX 0
回答:
好的,我能够使用下面的代码动态地找到第一列的最后一个单元格,并将“TOTAL”输入到该单元格中,并相应地格式化它
Dim lTotalRows As Long, lTotalCols As Long
lTotalRows = xlSheet.UsedRange.Rows.Count
lTotalCols = xlSheet.UsedRange.Columns.Count
With xlSheet.Range("A" & (lTotalRows + 1).ToString) 'Dynamically finds the last cell of the first column, and sets it equal to "Total" and formats the cell
.Value = "TOTAL"
.Interior.ColorIndex = 41 'Cell Background Changed to Black
.Columns("A:B").EntireColumn.AutoFit()
With .Font
.ColorIndex = 2 'Cell Font Changed to White
.Bold = True
.Underline = Excel.XlUnderlineStyle.xlUnderlineStyleSingle
End With
End With
我可以使用以下代码将第二列的最后一个单元格设置为第二列所有单元格的总和
Dim totals as Integer
For Each dr As DataRow In dt.Rows
totals += dr.Item(1)
Next
xlSheet.Range("B" & (lTotalRows + 1).ToString).Value = totals
如果知道总行数,可以将下面的公式插入列底部的单元格中。您的示例数据显示了16行,不包括顶部标题行
=SUM(INDIRECT(ADDRESS(ROW()-16,COLUMN())):INDIRECT(ADDRESS(ROW()-1,COLUMN())))
我必须动态地实现这一点,因为行的数量根据用户在我的windows窗体中选择的查询内容而变化。检查op,里面有答案。由于我的代表的原因,我在被问到8小时后才能回答自己的问题。