如何删除Excel电子表格上的所有网格线,清除所有网格线后明确添加的网格线除外



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

我只想在有数据的地方有网格线(我自己添加),并完全删除默认情况下出现在其他地方的较轻网格线,我找到了这个公认的答案。。。但这对我不起作用。

使用此代码进行设置:

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

Excel.Application的此初始化编译(在其初始值设定项配布尔):

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

但是这个(将代码添加到初始值设定项)没有编译(我得到"无效的初始值设定项成员声明符"one_answers"名称"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未处理…对象引用未设置为对象实例。"

那么,我如何才能"清除"网格线,只让我明确应用的网格线显示在图纸上呢?

您需要在其他时间设置_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;

相关内容

  • 没有找到相关文章

最新更新