【问题标题】:How can I remove all gridlines on an Excel spreadsheet except those explicitly added by me after clearing them all?如何删除 Excel 电子表格上的所有网格线,除了我在清除所有网格线后明确添加的网格线?
【发布时间】:2016-03-24 13:56:29
【问题描述】:

是的,以前有人问过这个问题,但提供的答案对我不起作用。具体来说:

想要只在有数据的地方使用网格线(我自己添加),并完全删除默认情况下出现在其他任何地方的较轻的网格线,我发现this accepted answer...但它对我不起作用。

使用此代码进行设置:

using Excel = Microsoft.Office.Interop.Excel;
. . .
private Excel.Application _xlApp;

...Excel.Application 的此初始化编译(将布尔值分配给_xlApp 的DisplayGridLines 属性在其初始化程序之外):

_xlApp = new Excel.Application
{
    SheetsInNewWorkbook = 1,
    StandardFont = "ponceDeLeon",
    StandardFontSize = 11
};
_xlApp.Windows.Application.ActiveWindow.DisplayGridlines = false;

...但是这个(将代码添加到初始化程序)无法编译(我得到,“无效的初始化程序成员声明器”和“名称'Windows'在当前上下文中不存在”):

_xlApp = new Excel.Application
{
    SheetsInNewWorkbook = 1,
    StandardFont = "ponceDeLeon",
    StandardFontSize = 11,
    Windows.Application.ActiveWindow.DisplayGridlines = false
};

...也不用“Excel”编译。在“Windows.”之前添加,即使它似乎想要这样(提供导入“Microsoft.Office.Interop.Excel.Windows”和文件中的所有其他引用”)。编译器的抱怨是:

An object reference is required for the non-static field, method, or property 'Microsoft.Office.Interop.Excel.Windows.Application.get'"

---和:

Invalid initializer member declarator

我的项目的 References 文件夹中已经有 Microsoft.Office.Interop.Excel.Windows,事实上,我成功地生成了 .xlsx 文件。我现在进入项目的“姜饼/完成”部分(化妆品/格式化)。

即使在编译代码的情况下,它实际上也不起作用 - 它在运行时失败并显示:“System.NullReferenceException 未处理......对象引用未设置为对象的实例。”

那么我怎样才能“擦干净”网格线,只让那些我明确应用的网格线显示在工作表上?

【问题讨论】:

    标签: c# excel-interop gridlines objectinstantiation object-initializer


    【解决方案1】:

    您需要在其他时间设置_xlApp.Windows.Application.ActiveWindow.DisplayGridlines = false;。在设置值之前,您必须先打开或创建工作簿。那么它应该可以正常工作。

    当您打开现有的 Excel 文件时:

            Excel.Application app = new Excel.Application();
            //app.ActiveWindow.DisplayGridlines = false;//Error
            Excel.Workbooks workbooks = app.Workbooks;
            //app.ActiveWindow.DisplayGridlines = false;//Error
    
            workbooks.Open(filename);
            app.ActiveWindow.DisplayGridlines = false;//No Error
    

    当您创建一个新的 Excel 文件时:

            Excel.Application app = new Excel.Application();
            Excel.Workbook workbook = app.Workbooks.Add(System.Reflection.Missing.Value);
            app.ActiveWindow.DisplayGridlines = false;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多