C#将数据填入excel。范围不工作
我正在使用C#将数据填入excel。范围不工作,c#,asp.net,excel,C#,Asp.net,Excel,我正在使用Microsoft.Office.Interop.Excel将数据写入Excel 现在我使用下面的代码将数据填充到一系列单元格中。假设从P10到P20 Excel.Worksheet ps_sheet = //current worksheet string[,] data = new string[11,1]; var r = ps_sheet.Range["P10", "P20"]; r.Value2 = data; 上述代码工作正常,但如果范围
Microsoft.Office.Interop.Excel
将数据写入Excel
现在我使用下面的代码将数据填充到一系列单元格中。假设从P10到P20
Excel.Worksheet ps_sheet = //current worksheet
string[,] data = new string[11,1];
var r = ps_sheet.Range["P10", "P20"];
r.Value2 = data;
上述代码工作正常,但如果范围内只有一个单元格(例如“P20”到“P20”),则代码无法工作,该单元格显示的是旧数据
Excel.Worksheet ps_sheet = //current worksheet
string[,] data = new string[1,1];
var r = ps_sheet.Range["P20", "P20"];
r.Value2 = data;
excel.range可以只有一个单元格,也可以有多个单元格,因为我正在执行循环
出现这种情况的原因和解决方法是什么?只使用一个参数,第二个参数是可选的
var r = ps_sheet.Range["P20"];
仅使用一个参数,第二个参数是可选的
var r = ps_sheet.Range["P20"];
我更改为以下代码,它可以工作:
if (data.GetLength(0) == 1)
{
r = ps_sheet.Range["P10"];
r.Value2 = data[0, 1];
}
else
{
r = ps_sheet.Range["P10", "P20"];
r.Value2 = data;
}
我特别做了一个例子,如果数据只有一行。。。
不知道是否有更好的方法来实现这一点我改为下面的代码,它可以工作:
if (data.GetLength(0) == 1)
{
r = ps_sheet.Range["P10"];
r.Value2 = data[0, 1];
}
else
{
r = ps_sheet.Range["P10", "P20"];
r.Value2 = data;
}
我特别做了一个例子,如果数据只有一行。。。
不知道是否有更好的方法来实现这一点我认为这不包括最后一个数字,这就是为什么当你给出相同的位置时它是错误的。我认为这不包括最后一个数字,这就是为什么当你给出相同的位置时它是错误的。