【发布时间】:2016-02-06 19:52:09
【问题描述】:
有谁知道如何通过 C# 将数据复制到 Excel 中的表格范围中,并且不会丢失表格格式?
每次我将数据复制到范围时,它都会丢失之前设置的格式。
private object[,] Get2DArrayData()
{
var obj = new object[2, 4];
obj[0, 0] = "Header1";
obj[0, 1] = "Header2";
obj[0, 2] = "Header3";
obj[0, 3] = "Header4";
obj[1, 0] = 1;
obj[1, 1] = 2;
obj[1, 2] = 3;
obj[1, 3] = 4;
return obj;
}
private void button1_Click(object sender, RibbonControlEventArgs e)
{
var worksheet = Globals.ThisAddIn.Application.ActiveSheet;
Range range = worksheet.Range["A1:D2"];
Excel.ListObject obj = worksheet.ListObjects.Add(Excel.XlListObjectSourceType.xlSrcRange, range, null, Excel.XlYesNoGuess.xlYes, null);
obj.TableStyle = "TableStyleMedium3";
obj.Name = "MyTableNamedRange";
//table style is lost after setting Value2 on the range
range.Value2 = Get2DArrayData();
}
每次我将数组数据粘贴到 Value2 时,ListObject 都会被清除。有没有办法不丢失这种格式?无法在添加到 ListObjects 属性之前设置 Value2 属性。
【问题讨论】:
-
我认为你需要在这里扩展你的代码。
-
再次,代码太少,看不到发生了什么。您需要提供足够的信息,以便我们可以看到正在发生的事情。我们不知道
Get2DArrayData()做了什么,或者 Value2 在您的范围对象内是什么。请查看stackoverflow.com/help/mcve,然后更新您的问题,以便我们提供帮助 -
Get2DArrayData 在这种情况下并不重要。它只是返回一个多维对象数组(即object[,])并分配给范围对象上的Value2。
-
仍然没有足够的信息让我们看到发生了什么。请提供更多。
-
你还需要什么?