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

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

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

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

【问题讨论】:

    标签: c# excel-interop worksheet direction


    【解决方案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;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-10-08
          • 2019-10-18
          • 2013-01-05
          • 2016-05-02
          • 2018-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多