Ima*_*MIL 13 java jxl right-to-left
我想知道我是否可以将excel表的方向设置为从右到左......我正在使用JXL Api.
提前致谢
赏金是从右到左,而不是右对齐

目前JXL不支持此选项,但如果您愿意编辑和重新构建JXL,我有一个很好的解决方案.
从右到左选项被保存并在名为WINDOW2 record的文件的一部分中定义.你可以看到在零件中定义的所有选项这里在部分窗口2 5.110.在5.110.2选项标志下,您可以看到选项标志和从右到左选项的掩码值:
6 | 0040H | 0 = Columns from left to right | 1 = Columns from right to left
Run Code Online (Sandbox Code Playgroud)
JXL create这个类中的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;
}
...
Run Code Online (Sandbox Code Playgroud)
如您所见,选项"显示轮廓符号"被硬编码为真,因为它的掩码(0x80)总是添加到选项标志,而DisplayZeroValues可以通过给定的SheetSettings对象(具有getter和setter)的值进行配置. .)
如果您愿意重建项目,可以通过添加以下行来硬编码从右到左的设置:
options | = 0x40; //从右到左的列
对于此构造函数,或者如果您希望它可配置,请向SheetSettings(以及它的getter和setter)添加一个新参数,并在Window2Record中为它添加正确的if子句.
这可以手动完成(从Microsoft Office支持)
"Excel选项"对话框中的"从右到左"选项从右到左定向新工作表.该设置不适用于当前显示的工作表.您可以在同一工作簿中将工作表从右到左,从左到右.
- 单击"Microsoft Office按钮",然后单击"Excel选项".Excel选项按钮在哪里?
- 单击国际.
- 在"从右到左"和"默认"方向下,单击"从右到左",然后单击"确定".
- 插入新工作表,或打开新工作簿.
- 在Windows任务栏中(或在语言栏上,如果可见),单击"语言"图标,然后单击要使用的从右向左语言的名称.
- 如果需要更改文本的方向,请单击"字体对齐"组中"数据"选项卡上的"从右到左"按钮.
似乎JXL api不支持此功能.您可以查看Apache Poi(javadoc)或TeamDev的JExcel(javadoc),它更适合此类要求.实施将类似于:
Poi方式:
XSSFSheet sheet = workbook.createSheet();
sheet.getCTWorksheet().getSheetViews().getSheetViewArray(0).setRightToLeft(true);
Run Code Online (Sandbox Code Playgroud)
通过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));
}
});
Run Code Online (Sandbox Code Playgroud)
顺便说一下,如果您尝试使用setExcelRegionalSettings(IL)或setExcelRegionalSettings(IL-JM)不能使用,因为这些是JXL唯一支持的国家/地区:
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4287 次 |
| 最近记录: |