У меня есть электронная таблица Excel, которую я создал динамически с помощью SQL и VB.NET. Количество столбцов (2) никогда не изменится, однако количество записей будет меняться в зависимости от того, какие данные указал пользователь. После того, как SQL запустился и заполнил электронную таблицу, мне нужно добавить запись внизу таблицы, которая отображает общее (целое значение) записей в столбце 2.
Что-то типа:
xlSheet.Range(нижняя запись, столбец1) = "Всего" xlSheet.Range(нижняя запись, столбец2) = сумма всех вышеуказанных записей в столбце 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
ОТВЕТ:
Хорошо, я смог использовать следующий код, чтобы динамически найти последнюю ячейку первого столбца и ввести «ИТОГО» в ячейку, а также отформатировать ее соответствующим образом.
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