Excel 互操作从右到左文档

Posted

技术标签:

【中文标题】Excel 互操作从右到左文档【英文标题】:Excel Interop right to left document 【发布时间】:2011-06-03 10:04:10 【问题描述】:

我用 C# 创建了一个新的 Excel 文件。

当我打开文档时,所有工作表都从右到左对齐。

如何对齐工作表/工作簿/窗口以在语法上从左到右显示?

【问题讨论】:

【参考方案1】:
Sub leftToRight()
    Application.DefaultSheetDirection = xlLTR
    ActiveSheet.DisplayRightToLeft = False
End Sub

您也可以通过Tools->Options->International更改设置。请注意,您需要设置/取消设置“从右到左查看当前工作表”复选框以更改当前打开的工作表。

编辑:抱歉,我不小心将您的问题解释为 VBA。

这是一个 c# 解决方案:

Excel.Application xlApp = new Excel.Application();
xlApp.Visible = true;
xlApp.Workbooks.Add(System.Type.Missing);  
Excel.Worksheet active = (Excel.Worksheet)xlApp.ActiveSheet;

xlApp.DefaultSheetDirection = (int)Excel.Constants.xlLTR; //or xlRTL
active.DisplayRightToLeft = false;

【讨论】:

我必须添加的唯一备注是我的课程不包含“常量”属性或字段。所以我使用了名为 xlDirection 的 interop dll 的内置枚举【参考方案2】:

我想介绍一下我在使用 marg 概念并将其更改为适合我的语法后对该功能的实现:

public void SetWorksheetDirection(Application excel, bool isRTL)

    Worksheet active = (Worksheet)excel.ActiveSheet;

    if (isRTL)
        excel.DefaultSheetDirection = (int)XlDirection.xlToRight;
    else
        excel.DefaultSheetDirection = (int)XlDirection.xlToLeft;

    active.DisplayRightToLeft = isRTL;
 

【讨论】:

【参考方案3】:

执行一次以更改默认方向:

Alt+F11 打开 VBA 编辑器 Ctrl+G 打开即时窗口 在即时窗口中输入Application.DefaultSheetDirection = xlLTR 并按Enter Alt+Q关闭VBA编辑器 创建一个新的工作簿来测试它

【讨论】:

【参考方案4】:

如果你只是想组织一些列,你可以使用这样的一行:

oWS.Range["A1:B2000"].HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlLeft;

【讨论】:

以上是关于Excel 互操作从右到左文档的主要内容,如果未能解决你的问题,请参考以下文章

Excel怎么改变工作表从右到左显示

如果操作系统低于 Win10,GraphicsPath AddString 对使用从右到左语言时的字体支持不够

从右到左 SnackBar

如何设置导航抽屉从右到左打开

使用 Visual Basic 和互操作搜索 Excel 文档列

Java运算符优先级