SQL と VB.NET を使用して動的に生成した Excel スプレッドシートがあります。列数 (2) は変わりませんが、ユーザーが指定したデータに応じてレコード数が変わります。SQL が実行され、スプレッドシートがいっぱいになったら、列 2 にレコードの合計 (int 値) を表示するテーブルの下部にレコードを追加する必要があります。
何かのようなもの:
xlSheet.Range(bottom record, column1) = "合計" xlSheet.Range(bottom record, column2) = 列 2 の上記のすべてのレコードの合計
VS 2010 と Excel 2010 を使用しています。
私のテーブルはこれに似ています:
*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
答え:
OK、次のコードを使用して、最初の列の最後のセルを動的に見つけ、「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
次のコードを使用して、2 番目の列の最後のセルを 2 番目の列のすべてのセルの合計に等しく設定することができました。
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