gpt4 book ai didi

C# 数组仅将第一个数组项重复到 excel 字段中

转载 作者:行者123 更新时间:2023-12-04 22:27:49 25 4
gpt4 key购买 nike

只有第一个数组项被加载到单元格中,它们都得到相同的值,而不是每个值都被发送到自己的单元格

我在保存函数中使用了相同的代码,而是使用此代码:

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);
}

第一个数组项的值被放入范围内的每个单元格中,而不是进入单元格中的每个项目遍历列表

最佳答案

多单元格范围接受并返回二维矩形数组。例如(未测试):

xlWorksheet.Range["A1:B1"].Value = new[,] { {1, 2} };    // for "horizontal" range

xlWorksheet.Range["A1:A2"].Value = new[,] { {1}, {2} }; // for "vertical" range

xlWorksheet.Range["A1:B2"].Value = new[,] { {1, 2}, {3, 4} };

水平范围接受一维数组,但垂直范围不接受。

正如@TimWilliams 在评论中提到的, Application.Transpose Application.WorksheetFunction.Transpose 可用于将一维数组转换为二维“垂直”数组:
xlWorksheet.Range["A1:A2"].Value = xlApp.Transpose(new[] { 1, 2 }); 

关于C# 数组仅将第一个数组项重复到 excel 字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56173784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com