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 互操作从右到左文档的主要内容,如果未能解决你的问题,请参考以下文章
如果操作系统低于 Win10,GraphicsPath AddString 对使用从右到左语言时的字体支持不够