C#Interop Excel格式,如Excel的格式为表格

时间:2013-02-06 20:36:19

标签: c# formatting excel-interop

我正在SQLite中将表格从Excel导出到C#(2010)。它工作正常。我正在使用Excel.Range.set_Value()方法。

如何格式化Excel.Range Excel's格式(如表格)?

3 个答案:

答案 0 :(得分:10)

扩展我的评论并添加到D Stanley。

Range range = ws.get_Range("A1:D5");
wrksheet.ListObjects.AddEx(XlListObjectSourceType.xlSrcRange, range, missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlNo, missing).Name = "MyTableStyle";
wrksheet.ListObjects.get_Item("MyTableStyle").TableStyle = "TableStyleMedium1";

答案 1 :(得分:2)

此示例选择活动工作表中每个单元格的矩形范围。此外,它使用Range的索引参数来获取范围点。此外,AddEx()(以及Interop.Excel中的大多数方法)使用默认参数,因此您不必使用System.Reflection.Missing。

// define points for selecting a range
// point 1 is the top, leftmost cell
Excel.Range oRng1 = oSheet.Range["A1"];
// point two is the bottom, rightmost cell
Excel.Range oRng2 = oSheet.Range["A1"].End[Excel.XlDirection.xlToRight]
    .End[Excel.XlDirection.xlDown];

// define the actual range we want to select
oRng = oSheet.Range[oRng1, oRng2];
oRng.Select(); // and select it

// add the range to a formatted table
oRng.Worksheet.ListObjects.AddEx(
    SourceType: Excel.XlListObjectSourceType.xlSrcRange,
    Source: oRng,
    XlListObjectHasHeaders: Excel.XlYesNoGuess.xlYes);

答案 2 :(得分:-1)

这是VBA:

ActiveSheet.ListObjects.Add xlSrcRange, Range("$J$10:$N$12"), , xlYes

不应该太难转换为自动化调用。你也可以read the documentation