如何将网格线添加到一个工作表而不是另一个工作表(C#Excel Interop)?

克莱·香农

此处的某些答案类似,我通过以下方式关闭了Excel文件中的网格线:

private ApplicationClass _xlApp;
. . .
_xlApp = new ApplicationClass { UserControl = true };
_xlApp.ActiveWindow.DisplayGridlines = false;

但是,在我的工作簿中,我创建了两张纸,第二张纸需要显示网格线。如何在工作表级别切换网格线的显示?

我尝试了这个:

private ApplicationClass _xlApp;
private ApplicationClass _xlApp2;
. . .
_xlApp = new ApplicationClass { UserControl = true };
_xlApp.ActiveWindow.DisplayGridlines = false;
. . .
_xlApp2 = new ApplicationClass { UserControl = true };
_xlApp2.ActiveWindow.DisplayGridlines = true;

...但是这发出了电子书信,在运行时通知我在上面显示的最后一行上对象引用未设置为对象的实例”。

因此,我可以将一张纸设置为网格状而另一张未网格状吗?还是我必须将事情纳入自己的手套中,并在第二张纸上添加通用边框?

更新

David Tansey的链接很引人入胜,但没有提供任何有关如何使用Worksheetview对象的具体(甚至是抽象)示例。因此,我对(c#excel interop worksheetview displaygridlines示例)进行了分析(bang?),并找到了这个

然后,我推断出此“虚拟Buffoonery”代码:

Dim wsv As WorksheetView 
Set wsv = wnd.SheetViews(1) 
' Display formulas and zeros, but hide 
' gridlines, headings, and outlines: 
wsv.DisplayFormulas = True 
wsv.DisplayGridlines = False 
wsv.DisplayHeadings = False 
wsv.DisplayOutline = False 
wsv.DisplayZeros = True 

...并因此将其C#化:

// existing:
private ApplicationClass _xlApp;
_xlApp = new ApplicationClass { UserControl = true };

// new / extrapolated:
WorksheetView wsv = _xlApp.ActiveWindow.SheetViews(2);
wsv.DisplayGridlines = true;
wsv.DisplayZeros = true;

...但是遇到了编译时的麻烦,“不可调用的成员'Microsoft.Office.Interop.Excel.Window.SheetViews'不能像方法一样使用。

所以,我尝试了这个:

WorksheetView wsv = (WorksheetView)_xlApp.Sheets[2];    
wsv.DisplayGridlines = true;
wsv.DisplayZeros = true;

它已编译,但是在运行时,我对“无法将COM对象类型'System .__ ComObject'强制转换为接口类型'Microsoft.Office.Interop.Excel.WorksheetView。”感到非常失望(甚至将其引述为Humperdinck)。 ..不支持此类接口

那么有没有办法在C#中执行此操作,或者这是Virus Bits在C#上具有病毒位的那些区域之一?

更新2

这种主题上的变化引起了电子精神的相同反应:

_xlSheetDelPerf = (Worksheet)_xlSheets.Item[2];
WorksheetView wsv = (WorksheetView)_xlSheetDelPerf;
wsv.DisplayGridlines = true;
wsv.DisplayZeros = true;
克莱·香农

我无法找到一种简单的方法来做到这一点,所以我像这样:“强行强迫它”:

// Add borders to the sheet
var delPerfDataRange =
    _xlSheetDelPerf.Range[_xlSheetDelPerf.Cells[1, _xlSheetDelPerf.UsedRange.Columns.Count],            
_xlSheetDelPerf.Cells[_xlSheetDelPerf.UsedRange.Rows.Count, _xlSheetDelPerf.UsedColumns.Count]];
Borders _dataBorders = delPerfDataRange.Borders;
_dataBorders[XlBordersIndex.xlEdgeLeft].LineStyle = XlLineStyle.xlContinuous;
_dataBorders[XlBordersIndex.xlEdgeRight].LineStyle = XlLineStyle.xlContinuous;
_dataBorders[XlBordersIndex.xlEdgeTop].LineStyle = XlLineStyle.xlContinuous;
_dataBorders[XlBordersIndex.xlEdgeBottom].LineStyle = XlLineStyle.xlContinuous;
_dataBorders.Color = Color.Black;

实际上,无论如何,我最终只需要限制表格的网格范围,所以我这样做:

// Add borders around all the data
var delPerfDataRange =
    _xlSheetDelPerf.Range[_xlSheetDelPerf.Cells[DEL_PERF_FIRST_DATA_ROW, PROACT_DISTRIBUTOR_COLUMN],            
        _xlSheetDelPerf.Cells[curDelPerfRow - 1, TOTAL_PACKAGE_COUNT_COLUMN]];
Borders _dataBorders = delPerfDataRange.Borders;
_dataBorders[XlBordersIndex.xlEdgeLeft].LineStyle = XlLineStyle.xlContinuous;
_dataBorders[XlBordersIndex.xlEdgeRight].LineStyle = XlLineStyle.xlContinuous;
_dataBorders[XlBordersIndex.xlEdgeTop].LineStyle = XlLineStyle.xlContinuous;
_dataBorders[XlBordersIndex.xlEdgeBottom].LineStyle = XlLineStyle.xlContinuous;
_dataBorders.Color = Color.Black;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel Interop:如何将工作表复制到另一个工作簿?

来自分类Dev

C#Excel Interop错误:该文件正在由另一个进程使用

来自分类Dev

Excel.Interop:参数之一引用另一个工作表时,AccessViolation异常

来自分类Dev

如何将工作表从Excel文件添加到另一个文件?

来自分类Dev

Excel InterOp-将范围添加到工作表的末尾

来自分类Dev

将一个文档插入另一个 Microsoft.Office.Interop.Word

来自分类Dev

C# Interop 将 JSON 值添加到工作表

来自分类Dev

如何在Excel InterOp中创建Excel工作表并将其添加到多个工作簿

来自分类Dev

如何在Excel InterOp中创建Excel工作表并将其添加到多个工作簿中

来自分类Dev

如何根据唯一 ID Nr 将工作表 1 中的值添加到同一 Excel 文件中的另一个工作表?

来自分类Dev

如何将表中的值添加到另一个表中?

来自分类Dev

Microsoft Excel 2010如何将表引用到另一个工作表

来自分类Dev

ExcelDnaUtil与Interop.Excel

来自分类Dev

ExcelDnaUtil与Interop.Excel

来自分类Dev

Interop Excel速度很慢

来自分类Dev

如何将另一个孩子添加到响应数据表

来自分类Dev

如何将多个图表添加到一个Excel的不同工作表中?

来自分类Dev

Interop Outlook-从另一个邮箱发送约会

来自分类Dev

如何将工作表内容复制到另一个工作表?

来自分类Dev

C#Excel Interop _Workbooks.Open

来自分类Dev

在Excel中添加另一个工作表

来自分类Dev

将一个表中的列添加到另一个表

来自分类Dev

将一个表的多行添加到另一个表

来自分类Dev

如何将一个Excel工作表中的单元格与另一个Excel工作表中的多个单元格相乘

来自分类Dev

查找并将数据库中的相关数据添加到另一个Excel工作表中

来自分类Dev

动态数据透视表-如何将生成的列添加到另一个表?

来自分类Dev

Visual Basic-将条目添加到另一个工作表中的列表

来自分类Dev

Microsoft Excel-如何将行从一个工作表复制到另一个通过值过滤的工作表

来自分类Dev

excel-如何将所有工作表从一个工作簿复制到另一个工作簿

Related 相关文章

  1. 1

    Excel Interop:如何将工作表复制到另一个工作簿?

  2. 2

    C#Excel Interop错误:该文件正在由另一个进程使用

  3. 3

    Excel.Interop:参数之一引用另一个工作表时,AccessViolation异常

  4. 4

    如何将工作表从Excel文件添加到另一个文件?

  5. 5

    Excel InterOp-将范围添加到工作表的末尾

  6. 6

    将一个文档插入另一个 Microsoft.Office.Interop.Word

  7. 7

    C# Interop 将 JSON 值添加到工作表

  8. 8

    如何在Excel InterOp中创建Excel工作表并将其添加到多个工作簿

  9. 9

    如何在Excel InterOp中创建Excel工作表并将其添加到多个工作簿中

  10. 10

    如何根据唯一 ID Nr 将工作表 1 中的值添加到同一 Excel 文件中的另一个工作表?

  11. 11

    如何将表中的值添加到另一个表中?

  12. 12

    Microsoft Excel 2010如何将表引用到另一个工作表

  13. 13

    ExcelDnaUtil与Interop.Excel

  14. 14

    ExcelDnaUtil与Interop.Excel

  15. 15

    Interop Excel速度很慢

  16. 16

    如何将另一个孩子添加到响应数据表

  17. 17

    如何将多个图表添加到一个Excel的不同工作表中?

  18. 18

    Interop Outlook-从另一个邮箱发送约会

  19. 19

    如何将工作表内容复制到另一个工作表?

  20. 20

    C#Excel Interop _Workbooks.Open

  21. 21

    在Excel中添加另一个工作表

  22. 22

    将一个表中的列添加到另一个表

  23. 23

    将一个表的多行添加到另一个表

  24. 24

    如何将一个Excel工作表中的单元格与另一个Excel工作表中的多个单元格相乘

  25. 25

    查找并将数据库中的相关数据添加到另一个Excel工作表中

  26. 26

    动态数据透视表-如何将生成的列添加到另一个表?

  27. 27

    Visual Basic-将条目添加到另一个工作表中的列表

  28. 28

    Microsoft Excel-如何将行从一个工作表复制到另一个通过值过滤的工作表

  29. 29

    excel-如何将所有工作表从一个工作簿复制到另一个工作簿

热门标签

归档