Эта ошибка возникает при переполнении циклов цикла. Давайте рассмотрим простой пример:
class demo{
public static void main(String a[]){
int[] numberArray={4,8,2,3,89,5};
int i;
for(i=0;i<numberArray.length;i++){
System.out.print(numberArray[i+1]+" ");
}
}
Сначала я инициализировал массив как «numberArray». то некоторые элементы массива печатаются с использованием цикла. Когда цикл запускает время «i», напечатайте элемент (numberArray [i + 1] .. (когда значение i равно 1, будет напечатан элемент numberArray [i + 1].) Предположим, что, когда i = (numberArray. length-2), последний элемент массива печатается. Когда значение «i» переходит к (numberArray.length-1), нет значения для печати. В этот момент происходит «ArrayIndexOutOfBoundsException». Я надеюсь, что вы можете получить idea.thank you!
Если все, что вы пытаетесь сделать, это перейти в самый конец своей таблицы и добавить одну строку со значениями из элементов управления Form, вам вообще не нужен цикл for
. Нечто подобное должно сделать это:
//Cells only contains references to cells with actual data
int rowCount = worksheet.Dimension.End.Row;
int colCount = worksheet.Dimension.End.Column;
var cells = worksheet.Cells;
var maxRow = cells
.Select(c => c.Start.Row)
.Max();
//Go to the next row after the max
maxRow++;
worksheet.Cells[maxRow, 1].Value = comboBox1.Text;
worksheet.Cells[maxRow, 2].Value = textBox1.Text;
worksheet.Cells[maxRow, 3].Value = textBox2.Text;
worksheet.Cells[maxRow, 4].Value = textBox3.Text;
worksheet.Cells[maxRow, 5].Value = textBox4.Text;
worksheet.Cells[maxRow, 6].Value = richTextBox1.Text;
Дайте мне знать, если я неправильно понимаю.