2009-07-24 13 views
29

में एक्सेल फ़ाइल बनाएं मैं जावा के साथ एक टेक्स्ट फ़ाइल लिखने की तरह एक एक्सेल फ़ाइल बनाना और डेटा लिखना चाहता हूं। मैंने फ़ाइल एक्सटेंशन को .txt से .xls में बदलने का प्रयास किया। लेकिन मैं एक्सेल फ़ाइल में बोल्ड अक्षरों को चाहता हूं। मैं उसे कैसे कर सकता हूँ?जावा

मैंने जेएक्सएल एपीआई का उपयोग करने की कोशिश की है, लेकिन हर बार मुझे एक लेबल बनाना है, मैं कोई लेबल नहीं जोड़ना चाहता हूं। क्या आप तालिका के पंक्ति और कॉलम को संपादित नहीं कर सकते?

+0

आप अपने एक्सेल बनाने के लिए क्या उपयोग कर रहे हैं? क्या आप अपना कोड दिखा सकते हैं? – Maksim

उत्तर

28

आप देशी बाइनरी xls फ़ाइलों को बनाने के लिए Apache POI का उपयोग कर सकते हैं।

या आप JExcelApi का उपयोग कर सकते हैं जो कि एक और कुछ हल्का वजन है, जहां तक ​​मुझे याद है, एक्सेल के लिए जावा लाइब्रेरी।

3

फ़ाइल का विस्तार बदलना किसी भी तरह से अपनी सामग्री को परिवर्तित नहीं करता है। एक्सटेंशन सिर्फ एक लेबल है।

यदि आप जावा का उपयोग कर एक्सेल स्प्रेडशीट के साथ काम करना चाहते हैं, तो Apache POI लाइब्रेरी पर पढ़ें।

0

मैंने JXLS भी उपयोग किया: यह डेटा को सही वाक्यविन्यास के साथ मानचित्र और टेम्पलेट एक्सेल के रूप में प्राप्त करता है और फ़ाइल को सही ढंग से आबादी देता है। प्रत्येक सेल में डेटा जावाबीन दृश्यता सार्वजनिक के साथ होना चाहिए।

यदि आपको 1 से अधिक शीट में डेटा डालना होगा तो यह खराब नहीं है: इस मामले में मैंने POI का उपयोग किया था।

3

फ्लैट फ़ाइलें मेटा जानकारी प्रदान करने की अनुमति नहीं देती हैं।

मैं आपको आवश्यक जानकारी वाली एक HTML तालिका लिखने का सुझाव दूंगा, और एक्सेल को इसके बजाय इसे पढ़ने दें। इसके बाद आप < बी > टैग का उपयोग कर सकते हैं जो आप पूछते हैं।

0

एक स्प्रेडशीट बना सकते हैं और एक सेल POI का उपयोग कर फ़ॉर्मेट करने के लिए, Working with Fonts उदाहरण देखते हैं, और उपयोग:

font.setBoldweight(Font.BOLDWEIGHT_BOLD); 

POI बहुत अच्छी तरह से काम करता है। ऐसी कुछ चीजें हैं जो आप नहीं कर सकते हैं (उदाहरण के लिए वीबीए मैक्रोज़ बनाएं), लेकिन यह मैक्रोज़ के साथ स्प्रैडशीट्स को पढ़/लिख देगा, ताकि आप एक उपयुक्त टेम्पलेट शीट बना सकें, इसे पढ़ सकें और इसे पीओआई के साथ कुशल बना सकें, और फिर इसे लिख लें।

8

Apache POI के एक्सेल पीढ़ी के बारे में मेला चेतावनी ... (मैं जानता हूँ कि यह एक पुरानी पोस्ट है, लेकिन यह इस मामले में महत्वपूर्ण कोई फिर से इस अप लगता है जैसे मैं अभी किया है)

यह एक स्मृति रिसाव मुद्दा था, जिसे माना जाता है कि 2006 तक हल किया गया था, लेकिन हाल ही में जो लोग अभी भी अनुभव कर रहे हैं। यदि आप बड़ी मात्रा में एक्सेल उत्पन्न करना चाहते हैं (यानी, यदि आप एक एकल, बड़ी फ़ाइल, बड़ी संख्या में छोटी फाइलें या दोनों उत्पन्न करना चाहते हैं), तो मैं एक अलग एपीआई का उपयोग करने की सलाह दूंगा। या तो, या जेवीएम स्टैक आकार को प्रीस्टोस्टेरस अनुपात में बढ़ा रहा है, और हो सकता है कि यदि आप जानते हैं कि आप वास्तव में कई अलग-अलग तारों के साथ काम नहीं करेंगे (हालांकि, निश्चित रूप से, आंतरिक तारों का अर्थ है कि यदि आपके पास बड़ी संख्या में हैं तो अलग-अलग तार, आपके पास एक पूरी तरह से अलग प्रोग्राम-क्रैशिंग मेमोरी समस्या होगी। इसलिए, उस मार्ग पर जाने से पहले मान लें)।

+4

अब 2015 में और अपाचे पीओआई का उपयोग करने में दिलचस्पी थी लेकिन आपके अनुभव के कारण संदेह है, हालांकि सिर्फ यह [एफएक्यू प्रश्न] (https://poi.apache.org/faq.html#faq-N10109) साझा करना चाहता था वेबसाइट जो मैंने सोचा था कि समस्याएं निवारण के लिए प्रासंगिक हो सकती हैं। – Hesham

+0

@ हेशम का लिंक अब किसी विशिष्ट प्रश्न से लिंक नहीं है। [यह एक] (https://poi.apache.org/faq.html#faq-N10165) और [यह एक] (https://poi.apache.org/faq.html#faq-N1023C) प्रासंगिक प्रतीत होता है। – Evan

61
//Find jar from here "http://poi.apache.org/download.html" 
import java.io.*; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.hssf.usermodel.HSSFRow; 
import org.apache.poi.hssf.usermodel.HSSFCell; 

public class CreateExlFile{ 
    public static void main(String[]args) { 
     try { 
      String filename = "C:/NewExcelFile.xls" ; 
      HSSFWorkbook workbook = new HSSFWorkbook(); 
      HSSFSheet sheet = workbook.createSheet("FirstSheet"); 

      HSSFRow rowhead = sheet.createRow((short)0); 
      rowhead.createCell(0).setCellValue("No."); 
      rowhead.createCell(1).setCellValue("Name"); 
      rowhead.createCell(2).setCellValue("Address"); 
      rowhead.createCell(3).setCellValue("Email"); 

      HSSFRow row = sheet.createRow((short)1); 
      row.createCell(0).setCellValue("1"); 
      row.createCell(1).setCellValue("Sankumarsingh"); 
      row.createCell(2).setCellValue("India"); 
      row.createCell(3).setCellValue("[email protected]"); 

      FileOutputStream fileOut = new FileOutputStream(filename); 
      workbook.write(fileOut); 
      fileOut.close(); 
      System.out.println("Your excel file has been generated!"); 

     } catch (Exception ex) { 
      System.out.println(ex); 
     } 
    } 
} 
+0

हाय, यह मेरे लिए एक बाइनरी फ़ाइल बनाई गई। मैं एक एक्सेल फ़ाइल कैसे बना सकता हूं जिसे मैं एक्सेल के साथ खोल सकता हूं? – Dejell

+0

यहां छोटा प्रश्न - आप HSSFSheet.createRow में int मान क्यों कम कर रहे हैं? एपीआई एक int लेता है। –

3

मैंने एक्सेल फ़ाइल को और अधिक आसान बनाने के लिए एक एपीआई बनाई है।

Create Excel - Creating Excel from Template

तभी अमल आह्वान(), यह अपने वांछित उत्पादन निर्देशिका के आधार पर बनाया जाएगा इन्स्टेन्शियशन पर आवश्यक मूल्यों को निर्धारित।

लेकिन इससे पहले कि आप इसका उपयोग करें, आपके पास एक एक्सेल टेम्पलेट होना चाहिए जिसका उपयोग नव निर्मित एक्सेल फ़ाइल के टेम्पलेट के रूप में किया जाएगा।

इसके अलावा, आपको अपने प्रोजेक्ट के क्लास पथ में Apache POI की आवश्यकता है।

+0

ग्रीटिंग जॉब @ एरिज लेगेरा। धन्यवाद –

+0

क्या आपके पास पीडीएफ, सीएसवी उत्पन्न करने के लिए अन्य टूल्स हैं ...? –

+0

@PashaGharibi आप पीडीएफ उत्पन्न करने के लिए [JasperReports] (https://community.jaspersoft.com/) आज़मा सकते हैं। रिपोर्ट के टेम्पलेट को बनाने के लिए इसमें आईडीई है। [जैस्पर्सॉफ्ट स्टूडियो] (https://community.jaspersoft.com/project/jaspersoft-studio/releases) –

3
File fileName = new File(".....\\Fund.xlsx"); 

public static void createWorkbook(File fileName) throws IOException { 
    try { 
     FileOutputStream fos = new FileOutputStream(fileName); 
     XSSFWorkbook workbook = new XSSFWorkbook();    

     XSSFSheet sheet = workbook.createSheet("fund"); 

     Row row = sheet.createRow(0); 
     Cell cell0 = row.createCell(0); 
     cell0.setCellValue("Nav Value"); 

     Cell cell1 = row.createCell(1); 

     cell1.setCellValue("Amount Change");  

     Cell cell2 = row.createCell(2); 
     cell2.setCellValue("Percent Change"); 

     workbook.write(fos); 
     fos.flush(); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
+0

मैं उस फ़ाइल अस्तित्व को कैसे देख सकता हूं। मैं सुबह से इस पर काम कर रहा हूं लेकिन इसका कोई उपयोग नहीं है। कृपया मेरी मदद करें। –