13

エクセルシートの方向を右から左に設定できるかしら…JXLApiを使用しています。

前もって感謝します

バウンティは右から左への配置であり、右からの配置ではありません

ここに画像の説明を入力してください

4

3 に答える 3

8

現在、JXLはこのオプションをサポートしていませんが、JXLを編集して再構築する場合に機能する優れたソリューションがあります。

右から左へのオプションは、WINDOW2レコードと呼ばれるファイルのセクションに保存および定義されます。ここのセクション5.110WINDOW2で定義されているすべてのオプションを確認できます。セクション5.110.2オプションフラグの下で、オプションフラグと右から左へのオプションのマスク値を確認できます。

6 | 0040H | 0 = Columns from left to right | 1 = Columns from right to left

JXLcreateこのクラスのExcelファイルのこの部分--Window2Record 。

コンストラクターメソッドでは、いくつかの値が構成可能であり、いくつかがハードコーディングされていることがわかります。

  public Window2Record(SheetSettings settings)
  {
    super(Type.WINDOW2);

    int options = 0;

    options |= 0x0; // display formula values, not formulas

    if (settings.getShowGridLines())
    {
      options |= 0x02;
    }

    options |= 0x04; // display row and column headings

    options |= 0x0; // panes should be not frozen

    if (settings.getDisplayZeroValues())
    {
      options |= 0x10;
    }

    options |= 0x20; // default header

    options |= 0x80; // display outline symbols

    // Handle the freeze panes
    if (settings.getHorizontalFreeze() != 0 ||
        settings.getVerticalFreeze() != 0)
    {
      options |= 0x08;
      options |= 0x100;
    }
...

ご覧のとおり、オプション「アウトラインシンボルの表示」はtrueにハードコーディングされています。これは、マスク(0x80)が常にオプションフラグに追加され、DisplayZeroValuesが特定のSheetSettingsオブジェクト(ゲッターとセッターを含む)の値によって構成できるためです。 。)

プロジェクトを再構築する場合は、次の行を追加して、右から左への設定をハードコーディングできます。

オプション|=0x40; //右から左への列

このコンストラクターに、または構成可能にする場合は、SheetSettings(およびそのゲッターとセッター)に新しいパラメーターを追加し、Window2Recordでそのコンストラクターの右のif句を追加します。

于 2013-04-28T11:18:28.240 に答える
7

これは手動で行うことができます(Microsoft Officeサポートから)

[Excelのオプション]ダイアログボックスの[右から左]オプションは、新しいワークシートを右から左に配置します。この設定は、現在表示されているワークシートには適用されません。同じブック内でワークシートを右から左および左から右に向けることができます。

  1. [Microsoft Officeボタン]をクリックし、[Excelのオプション]をクリックします。Excelオプションボタンはどこにありますか?
  2. [インターナショナル]をクリックします。
  3. [右から左およびデフォルトの方向]で、[右から左]をクリックし、[OK]をクリックします。
  4. 新しいワークシートを挿入するか、新しいワークブックを開きます。
  5. Windowsタスクバー(または表示されている場合は言語バー)で、[言語]アイコンをクリックし、使用する右から左への言語の名前をクリックします。
  6. テキストの方向を変更する必要がある場合は、[フォントの配置]グループの[データ]タブで[右から左]ボタンをクリックします。

JXLAPIはこの機能をサポートしていないようです。この種の要件により適したApachePoi (javadoc)またはTeamDevのJExcel javadoc を見ることができます。実装は次のようになります。

ポイの方法:

XSSFSheet sheet = workbook.createSheet();
sheet.getCTWorksheet().getSheetViews().getSheetViewArray(0).setRightToLeft(true);

Jexcel経由:

 final Application application = ...;
        application.getOleMessageLoop().doInvokeAndWait(new Runnable() {
            public void run() {
                _Application app = application.getPeer();
                app.setDefaultSheetDirection(new Int32(LocaleID.LOCALE_USER_DEFAULT), new Int32(Constants.xlRTL));
            }
        });

ポイについて1、2、3_ _

ところで、 JXLでサポートされている国はこれらだけであるため、使用を試みた場合、setExcelRegionalSettings(IL)または機能しない場合は、次のようになります。setExcelRegionalSettings(IL-JM)

public static final jxl.biff.CountryCode USA;
public static final jxl.biff.CountryCode CANADA;
public static final jxl.biff.CountryCode GREECE;
public static final jxl.biff.CountryCode NETHERLANDS;
public static final jxl.biff.CountryCode BELGIUM;
public static final jxl.biff.CountryCode FRANCE;
public static final jxl.biff.CountryCode SPAIN;
public static final jxl.biff.CountryCode ITALY;
public static final jxl.biff.CountryCode SWITZERLAND;
public static final jxl.biff.CountryCode UK;
public static final jxl.biff.CountryCode DENMARK;
public static final jxl.biff.CountryCode SWEDEN;
public static final jxl.biff.CountryCode NORWAY;
public static final jxl.biff.CountryCode GERMANY;
public static final jxl.biff.CountryCode PHILIPPINES;
public static final jxl.biff.CountryCode CHINA;
public static final jxl.biff.CountryCode INDIA;
public static final jxl.biff.CountryCode UNKNOWN;
于 2013-04-24T08:23:55.080 に答える
0

スプレッドシートの作成中に右から左の方向を設定するには:

  • 右から左へのテキスト方向でxlsテンプレートファイルを手動で作成します
  • Jexcelで新しいスプレッドシートを作成する場合:

    • テンプレートをワークシートとして開きます
    • ワークシートメソッドを呼び出して、ワークシートテンプレートのコピーとして新しいワークシートを作成します。Workbookクラスのメソッドは次のとおりです。

      public static WritableWorkbook createWorkbook(java.io.File file,
                                                    Workbook in)
                                      throws java.io.IOException
      

      渡されたワークブックのコピーとして、指定されたファイル名で書き込み可能なワークブックを作成します。作成すると、書き込み可能なワークブックの内容を変更できます。

作成後に方向を変更するには:

  • スプレッドシートが開いているときに実行されるAUTO_OPENというExcelマクロを手動で作成できます。

        Application.DefaultSheetDirection = xlRTL
        ActiveSheet.DisplayRightToLeft = True
    
  • または、JXLを使用してすべての処理を実行し、ファイルを閉じてからVBscript(microsoft.office.interop.excel.dllとのインターフェイス)を実行できます。

     Set xl = CreateObject("Excel.application")
     xl.Application.Workbooks.Open "yourworkbookpath\yourworkbook.xls"
     xl.DefaultSheetDirection = xlRTL
    

    プロセスを介してJavaからスクリプトを実行できます

于 2013-05-01T07:37:52.770 に答える