使一个艺术字不接受焦点
在VSTO / VBA for Excel或Aspose Cells for Java中是否存在一个API,以便将添加到Excel工作表的艺术字从不接收键盘或鼠标焦点?
例如,在下面的图片中,当我点击艺术字时,它会收到焦点。 当它具有焦点并且我敲击键盘上的Tab键时,焦点转到下一个艺术字,即它上面的那个艺术字。
我想这些艺术字对象永远不会接收键盘或鼠标的焦点。 有没有办法?
这可以通过保护您的工作表来实现。 您可以从互联网上学习如何保护工作表及其内容或对象。 Aspose.Cells支持工作表的保护。
请参阅以下使用Aspose.Cells API的示例代码。 它解释了如何保护您的工作表内容或对象。 请根据您的需要修改代码。
Java和C#代码都是供参考的。
Java的
//Load your workbook Workbook wb = new Workbook("sample.xlsx"); //Access first worksheet Worksheet ws = wb.getWorksheets().get(0); //Unlock all cells of your worksheet Style st = ws.getCells().get("A1").getStyle(); st.setLocked(false); StyleFlag flg = new StyleFlag(); flg.setLocked(true); ws.getCells().applyStyle(st, flg); //Specify protection types Protection p = ws.getProtection(); p.setAllowEditingContent(false); p.setAllowEditingObject(false); p.setAllowEditingScenario(false); //Protect the worksheet ws.protect(ProtectionType.ALL); //Save the workbook wb.save("output.xlsx");
C#
//Load your workbook Workbook wb = new Workbook("sample.xlsx"); //Access first worksheet Worksheet ws = wb.Worksheets[0]; //Unlock all cells of your worksheet Style st = ws.Cells["A1"].GetStyle(); st.IsLocked = false; StyleFlag flg = new StyleFlag(); flg.Locked = true; ws.Cells.ApplyStyle(st, flg); //Specify protection types Protection p = ws.Protection; p.AllowEditingContent = false; p.AllowEditingObject = false; p.AllowEditingScenario = false; //Protect the worksheet ws.Protect(ProtectionType.All); //Save the workbook wb.Save("output.xlsx");
注意:我在Aspose作为Developer Evangelist工作
那么,在Aspose.Cells API中,您可以尝试使用字形的某些locking属性来完成您的任务,请参阅示例代码以供参考:例如示例代码:
Workbook workbook = new Workbook(); Worksheet worksheet = workbook.getWorksheets().get(0); Shape wordart = worksheet.getShapes().addTextEffect(MsoPresetTextEffect.TEXT_EFFECT_1, "CONFIDENTIAL", "Open Sans", 50, false, true, 18, 8, 1, 1, 130, 800); //Lock Shape Aspects. wordart.setLocked(true); wordart.setLockedProperty(ShapeLockType.SELECTION, true); wordart.setLockedProperty(ShapeLockType.SHAPE_TYPE, true); wordart.setLockedProperty(ShapeLockType.MOVE, true); wordart.setLockedProperty(ShapeLockType.RESIZE, true); wordart.setLockedProperty(ShapeLockType.TEXT, true); FillFormat wordArtFormat = wordart.getFill(); wordArtFormat.setFillType(FillType.SOLID); wordArtFormat.getSolidFill().setColor(Color.getLightGray()); wordArtFormat.setTransparency(0.55); wordart.setHasLine(false); workbook.save("out1.xlsx");
希望这个对你有帮助。
我在Aspose担任Support developer / Evangelist。