是否有适用于Excel的VSTO / VBA或Aspose Cells for Java的API,以便我添加到Excel工作表中的艺术字永远不会收到键盘或鼠标焦点?
例如在下图中,当我点击艺术字时,它会获得焦点。当它有焦点并且我按下键盘上的Tab键时,焦点转到下一个艺术字,即它上面的一个。
我希望这些艺术字对象永远不会接收键盘或鼠标焦点。有办法吗?
答案 0 :(得分:1)
这可以通过保护您的工作表来实现。您可以从互联网上学习如何保护工作表及其内容或对象。 Aspose.Cells支持工作表的保护。
请参阅以下使用Aspose.Cells API的示例代码。它解释了如何保护工作表内容或对象。请根据您的需要修改代码。
提供Java和C#代码作为参考。
<强>爪哇强>
//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担任开发人员传播者
答案 1 :(得分:1)
好吧,在Aspose.Cells API中,您可以尝试使用wordart形状的某些锁定属性来完成您的任务,请参阅示例代码供您参考: 例如 示例代码:
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的支持开发人员/传播者。