使艺术字不能得到重点

时间:2017-09-06 09:45:21

标签: excel vba ms-office vsto aspose-cells

是否有适用于Excel的VSTO / VBA或Aspose Cells for Java的API,以便我添加到Excel工作表中的艺术字永远不会收到键盘或鼠标焦点?

例如在下图中,当我点击艺术字时,它会获得焦点。当它有焦点并且我按下键盘上的Tab键时,焦点转到下一个艺术字,即它上面的一个。

我希望这些艺术字对象永远不会接收键盘或鼠标焦点。有办法吗?

enter image description here

2 个答案:

答案 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的支持开发人员/传播者。