В ячейки загружается только первый элемент массива, все они получают одно и то же значение, а не каждое значение, отправляемое в его собственную ячейку
У меня тот же код, который используется в функции сохранениявместо этого используется следующий код:
var iRowCount = xlSaveWorksheet.UsedRange.Rows.Count;
var newRow = iRowCount + 1;
var timeStamp = DateTime.Now;
var rangeStart = string.Concat("A", newRow.ToString());
var rangeEnd = string.Concat("F", newRow.ToString());
string[] stringSaveArray = new string[] { textBox_Name.Text, textBox_Number.Text, textBox_Client.Text, textBox_Site.Text, richTextBox_Description.Text, timeStamp.ToString() };
Excel.Range rng = xlSaveApp.get_Range(rangeStart, rangeEnd);
rng.Value = stringSaveArray;
Эта опция прекрасно работает, поэтому я не понимаю, почему она работает здесь, а не в другой функции
private void button_CopyTable_Click(object sender, EventArgs e)
{
var fullTempPath = Directory.GetCurrentDirectory() + "\\temp.xlsx";
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlTempWorkbook = xlApp.Workbooks.Open(fullTempPath);
Excel._Worksheet xlTempWorksheet = xlTempWorkbook.Sheets[1];
string[] stringArray = new string[] { textBox_Name.Text, textBox_Number.Text, textBox_Client.Text, textBox_Site.Text, richTextBox_Description.Text };
Excel.Range rng = xlApp.get_Range("B1","B5");
rng.Value = stringArray;
xlTempWorksheet.Range["A1:B5"].Copy();
Marshal.ReleaseComObject(xlTempWorksheet);
//close and release
xlTempWorkbook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
Marshal.ReleaseComObject(xlTempWorkbook);
//quit and release
xlApp.Quit();
Marshal.ReleaseComObject(xlApp);
}
Значенияпервый элемент массива помещается в каждую ячейку диапазона, а не в каждый элемент, попадающий в ячейку, проходящий по списку