如何删除 Excel 电子表格中的所有网格线,除了我在清除所有网格线后明确添加的网格线?
How can I remove all gridlines on an Excel spreadsheet except those explicitly added by me after clearing them all?
是的,之前有人问过这个问题,但提供的答案对我不起作用。更具体地说:
只想在有数据的地方使用网格线(我自己添加),并删除默认情况下在其他地方出现的较浅的网格线,我发现 this accepted answer...但它不起作用对我来说。
使用此代码进行设置:
using Excel = Microsoft.Office.Interop.Excel;
. . .
private Excel.Application _xlApp;
...Excel.Application compiles 的初始化(将 bool 分配给 _xlApp 的 DisplayGridLines 属性 outside of 它的初始值设定项):
_xlApp = new Excel.Application
{
SheetsInNewWorkbook = 1,
StandardFont = "ponceDeLeon",
StandardFontSize = 11
};
_xlApp.Windows.Application.ActiveWindow.DisplayGridlines = false;
...但是这个(将代码添加到初始化程序)无法编译(我得到,"Invalid initializer member declarator" 和 "The name 'Windows' does not exist in the current context"):
_xlApp = new Excel.Application
{
SheetsInNewWorkbook = 1,
StandardFont = "ponceDeLeon",
StandardFontSize = 11,
Windows.Application.ActiveWindow.DisplayGridlines = false
};
...它也不会在 "Windows." 前面加上 "Excel." 进行编译,即使它似乎想要那样(提供导入 '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 文件。我现在正在项目的 "gingerbread/finish" 部分 (cosmetics/formatting)。
即使在编译代码的情况下,它实际上也不起作用 - 它在运行时失败:"System.NullReferenceException was unhandled . . . Object reference not set to an instance of an object."
那么我如何 "wipe the slate clean" 网格线,并且只让那些我明确应用的网格线显示在 sheet 上?
您需要在其他时间设置_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;
是的,之前有人问过这个问题,但提供的答案对我不起作用。更具体地说:
只想在有数据的地方使用网格线(我自己添加),并删除默认情况下在其他地方出现的较浅的网格线,我发现 this accepted answer...但它不起作用对我来说。
使用此代码进行设置:
using Excel = Microsoft.Office.Interop.Excel;
. . .
private Excel.Application _xlApp;
...Excel.Application compiles 的初始化(将 bool 分配给 _xlApp 的 DisplayGridLines 属性 outside of 它的初始值设定项):
_xlApp = new Excel.Application
{
SheetsInNewWorkbook = 1,
StandardFont = "ponceDeLeon",
StandardFontSize = 11
};
_xlApp.Windows.Application.ActiveWindow.DisplayGridlines = false;
...但是这个(将代码添加到初始化程序)无法编译(我得到,"Invalid initializer member declarator" 和 "The name 'Windows' does not exist in the current context"):
_xlApp = new Excel.Application
{
SheetsInNewWorkbook = 1,
StandardFont = "ponceDeLeon",
StandardFontSize = 11,
Windows.Application.ActiveWindow.DisplayGridlines = false
};
...它也不会在 "Windows." 前面加上 "Excel." 进行编译,即使它似乎想要那样(提供导入 '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 文件。我现在正在项目的 "gingerbread/finish" 部分 (cosmetics/formatting)。
即使在编译代码的情况下,它实际上也不起作用 - 它在运行时失败:"System.NullReferenceException was unhandled . . . Object reference not set to an instance of an object."
那么我如何 "wipe the slate clean" 网格线,并且只让那些我明确应用的网格线显示在 sheet 上?
您需要在其他时间设置_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;