Excel Interop справа налево документ - PullRequest
5 голосов
/ 04 января 2011

Я создал новый файл Excel с C #.

Когда я открываю документ, все листы выравниваются справа налево.

Как настроить выравнивание листа / рабочей книги / окна для отображенияграмматически слева направо?

Ответы [ 4 ]

11 голосов
/ 04 января 2011
Sub leftToRight()
    Application.DefaultSheetDirection = xlLTR
    ActiveSheet.DisplayRightToLeft = False
End Sub

Вы также можете изменить настройку с помощью Сервис-> Параметры-> Международный . Обратите внимание, что вам нужно установить / снять флажок «Просмотр текущего листа справа налево», чтобы изменить текущие открытые листы.

Редактировать: Извините, я случайно интерпретировал ваш вопрос как 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;
6 голосов
/ 09 января 2011

Я хотел бы представить мою реализацию этой функции после того, как я использовал концепцию 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;
} 
0 голосов
/ 22 ноября 2016

Сделайте это один раз, чтобы изменить направление по умолчанию:

  • Alt + F11 , чтобы открыть редактор VBA
  • Ctrl + G , чтобы открыть окно Immediate
  • в окне Immediate, набрать Application.DefaultSheetDirection = xlLTR и нажать Enter
  • Alt + Q , чтобы закрыть редактор VBA
  • , создать новую книгу для проверки
0 голосов
/ 29 декабря 2013

Если вы просто хотите организовать некоторые столбцы, вы можете использовать строку вроде этой:

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