2011-12-31 20 views
13

का उपयोग कर दाएं से बाएं संरेखण के साथ एक्सेल शीट कैसे बनाएं I मुझे आश्चर्य है कि क्या मैं एक्सेल शीट की दिशा दाएं से बाएं दिशा में सेट कर सकता हूं ... मैं जेएक्सएल एपी का उपयोग कर रहा हूं। अग्रिमजेएक्सएल

इनाम में

धन्यवाद दाईं से बाईं ओर और न सही संरेखण

enter image description here

+0

बस एक अनुमान के माध्यम से जावा से एक स्क्रिप्ट निष्पादित कर सकते हैं, लेकिन आप करने के लिए किसी भी मदद के क्षेत्रीय सेटिंग्स निर्धारित करने की विधि है ('setExcelRegionalSettings() 'वर्कबुक सेटिंग्स' पर)? मैंने इस 'एपीआई' के साथ कभी काम नहीं किया है, इसलिए टेस्टकेस आपके लिए आसान होगा क्योंकि यह मेरे लिए होगा। – Aquillo

+0

यह सुविधा जेएक्सएल में उपलब्ध नहीं है। हालांकि, अगर आप इसके बजाय अपाचे पीओआई का उपयोग करते हैं, तो यह बहुत संभव है। –

+0

@ इमाद जामिल क्या आपने जेएक्सएल से पोई में स्विच किया है? –

उत्तर

7

यह मैन्युअल रूप से किया जा सकता है (from Microsoft Office Support)

राइट-हैं- के बारे में है Excel विकल्प संवाद बॉक्स में बाएं विकल्प नए ri से कार्यपत्रक बाएं से बाएं। सेटिंग वर्तमान में प्रदर्शित वर्कशीट पर लागू नहीं होती है। आप कार्यपत्रक उन्मुख दाएं को उसी कार्यपुस्तिका में बाएं और बाएं से दाएं कर सकते हैं।

  1. माइक्रोसॉफ़्ट ऑफिस बटन पर क्लिक करें, और उसके बाद एक्सेल विकल्प क्लिक करें। एक्सेल विकल्प बटन कहां है?
  2. अंतर्राष्ट्रीय पर क्लिक करें।
  3. दाएं से बाएं और डिफ़ॉल्ट दिशा के तहत, दाएं से बाएं क्लिक करें, और उसके बाद ठीकक्लिक करें।
  4. एक नया वर्कशीट डालें, या एक नई कार्यपुस्तिका खोलें।
  5. विंडोज टास्कबार में (या भाषा बार पर, यदि यह दृश्यमान है), भाषा आइकन पर क्लिक करें, और उसके बाद दाएं से बाएं भाषा के नाम पर क्लिक करें जिसका आप उपयोग करना चाहते हैं।
  6. यदि आपको टेक्स्ट की दिशा बदलने की आवश्यकता है, तो फ़ॉन्ट संरेखण समूह में डेटा टैब पर दाएं से बाएं बटन पर क्लिक करें।

ऐसा लगता है कि जेएक्सएल एपीआई इस सुविधा का समर्थन नहीं करता है। आप Apache Poi (javadoc) या TeamDev's 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)); 
      } 
     }); 

poi के बारे में: 1, 2, 3

Btw, यदि आप उपयोग 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; 
+1

अपाचे एक अच्छा है, मैंने इसे कुछ समय पहले इस्तेमाल किया था, यह कार्यपुस्तिका में चार्ट या उन्नत सेटिंग्स को गड़बड़ किए बिना संपादन की अनुमति देता है। – NoBugs

8

वर्तमान में JXL इस विकल्प का समर्थन नहीं करता है, लेकिन मैं एक अच्छा समाधान है यदि आप जेएक्सएल को संपादित और पुन: निर्माण करने के इच्छुक हैं तो यह काम करेगा।

राइट-टू-बाएं विकल्प सहेजे गए हैं और फ़ाइल के एक खंड में परिभाषित हैं जिसे WINDOW2 रिकॉर्ड कहा जाता है। आप अनुभाग 5.110 WINDOW2 में भाग here में परिभाषित सभी विकल्पों को देख सकते हैं। धारा 5.110 के तहत।2 विकल्प झंडे, आप विकल्प झंडा और दाएँ-से-बाएँ विकल्प के लिए मुखौटा मूल्य देख सकते हैं:

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

JXL इस वर्ग में एक्सेल फ़ाइल का यह हिस्सा बना सकते हैं - 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; 
    } 
... 

आप विकल्प "प्रदर्शन रूपरेखा प्रतीकों" देख सकते हैं मुश्किल, सच होना कोडित है के बाद से यह मास्क (0x80) हमेशा विकल्प ध्वज में जोड़ा जाता है, और DisplayZeroValues ​​दिए गए शीटसेटिंग ऑब्जेक्ट (जिसमें गेटर और सेटर्स ...)

यदि आप प्रोजेक्ट को पुनर्निर्माण करने के इच्छुक हैं, तो आप या तो कर सकते हैं लाइन जोड़कर आपकी दाएं से बाएं सेटिंग्स को हार्ड कोड:

विकल्प | = 0x40; // सही से कॉलम इस निर्माता के लिए छोड़ दिया करने के लिए

, या यह विन्यास, SheetSettings के लिए एक नया पैरामीटर (और एक गेटर और इसके लिए एक सेटर) जोड़ने अगर तुम चाहते हो और Window2Record में सही है, तो खंड जोड़ने इसके लिए।

0

दाएँ-से-बाएँ दिशा स्प्रेडशीट निर्माण के दौरान सेट करने के लिए:

  • मैन्युअल के साथ एक xls टेम्पलेट फ़ाइल बनाने के दाएँ-से-बाएँ पाठ दिशा
  • आप एक नई स्प्रैडशीट बनाना चाहते हैं जब Jexcel में:

    • एक वर्कशीट
    • invok के रूप में टेम्पलेट खोलने वर्कशीट टेम्पलेट की एक प्रति के रूप में एक नया वर्कशीट बनाने के लिए वर्कशीट विधि। यहाँ वर्कबुक कक्षा में विधि है:।

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

      कार्यपुस्तिका में पारित की एक प्रति के रूप में दिया फ़ाइल नाम के साथ एक लिखने योग्य कार्यपुस्तिका बनाता बन जाने के बाद लिखने योग्य कार्यपुस्तिका की सामग्री को

  • संशोधित किया जा सकता

निर्माण के बाद दिशा बदलने के लिए:

  • आप मैन्युअल रूप से एक एक्सेल मैक्रो Auto_Open कहा जाता है कि चलेंगे बना सकते हैं जब भी स्प्रेडशीट खुला है:

    Application.DefaultSheetDirection = xlRTL 
        ActiveSheet.DisplayRightToLeft = True 
    
  • या आप JXL के साथ अपने सभी प्रसंस्करण कर सकते हैं, फ़ाइल को बंद करें और फिर एक VBscript (चलाने के माइक्रोसॉफ्ट के साथ इंटरफ़ेस .office.interop.excel।dll):

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

    आप मेरी तरफ से Process

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^