অ্যাপাচি পিওআইতে এক্সএসএসএফ আমদানি করা যায় না


121

আমি অ্যাপাচি পিওআইয়ের ৩.7 সংস্করণটি উল্লেখ করছি এবং যখনই করি তখন "সমাধান করা যায় না" ত্রুটিটি পাচ্ছি:

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

অন্যান্য আমদানি বিবৃতি যে রেফারেন্স থাকা POI না আমাকে যেমন ত্রুটি, করা উচিত:

import org.apache.poi.ss.usermodel.*;

কোন ধারনা??


আমিও একই সমস্যা পাচ্ছিলাম, মনে হচ্ছে এটি পোই -৩.ওয়াস্ত.জর ফাইলের মূল কারণ যা কোনও কারণে এক্সএসএফ প্যাক করে রাখেনি
মিঃ

উত্তর:


197

OOXML কাজ করার জন্য আপনার POI-OOXML জার দরকার যা পিওআই জার থেকে পৃথকভাবে প্যাকেজ করা থাকে।

নিম্নলিখিত অবস্থান থেকে POI-OOXML জারটি ডাউনলোড করুন -

http://repo1.maven.org/maven2/org/apache/poi/poi-ooxml/3.11/poi-ooxml-3.11.jar

মাভেন 2 এর জন্য নীচের নির্ভরতা যুক্ত করুন -

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.11</version>
</dependency>

এই আমার প্রয়োজন ছিল। আমার জন্য (সংস্করণ 3.11) আমার কেবল অতিরিক্ত জার যুক্ত করার দরকার ছিল: পোইট-ooxML-3.11-20141221.jar। আমি বুঝতে পারি না যে তাদের মধ্যে কোনও টাই নেই। উত্তর পুষ্কর +1 এর জন্য ধন্যবাদ।
ক্লিন্ট এল

32

ওওএক্সএমএল ফাইল ফর্ম্যাটগুলির ক্লাসগুলি (যেমন .xlsx এর জন্য এক্সএসএসএফ) আলাদা জার ফাইলে রয়েছে। আপনার প্রকল্পের poi-oxML জারটি অন্তর্ভুক্ত করা উচিত, এর জন্য নির্ভরতার সাথে

আপনি এখানে POI ওয়েবসাইটে সমস্ত উপাদান এবং তাদের নির্ভরতার তালিকা পেতে পারেন ।

আপনি সম্ভবত যা করতে চান তা হ'ল 3.11 বাইনারি প্যাকেজটি ডাউনলোড করুন , poi-ooxmlএটি থেকে জারটি ধরুন এবং ooxml-libডিরেক্টরিতে নির্ভরতা করুন । এগুলি আপনার প্রকল্পে আমদানি করুন এবং আপনার বাছাই করা হবে।

পর্যায়ক্রমে, আপনি যদি মাভেন ব্যবহার করেন তবে আপনি যে শৈল্পিকের উপর নির্ভর করতে চান তার তালিকার জন্য আপনি এখানে দেখতে পারেন , তবে এটি এমন কিছু হতে চাই:

<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi-ooxml</artifactId>
   <version>3.11</version>
</dependency>

পো-ooxML মাভেন নির্ভরতা স্বয়ংক্রিয়ভাবে আপনার জন্য প্রধান POI জারে এবং নির্ভরতা টানবে। আপনি যদি নন-স্প্রেডশিট ফর্ম্যাটগুলির সাথে কাজ করতে চান, তবে আপনি পিওআই উপাদানগুলির পৃষ্ঠায়poi-scratchpad বিস্তারিত হিসাবে, আর্টিফ্যাক্টের উপরও নির্ভর করতে চান


10

আমি অ্যাপ্লিকেশন "build.gradle" এর নিচে বিষয়বস্তু যুক্ত করেছি

implementation 'org.apache.poi:poi:4.0.0'
implementation 'org.apache.poi:poi-ooxml:4.0.0'

এটি সত্যই সহায়তা করেছে
11:55

8

আপনি যদি মাভেন ব্যবহার করেন:

poi => poi-ooxML in আর্টিফ্যাক্টআইডি

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.12</version>
    </dependency>

আমি 3.12বিটা

6

সমস্যা: "org.apache.poi.xssf.usermodel.XSSFWorkbook" শ্রেণি আমদানির সময় গ্রহনে একটি ত্রুটি দেখাচ্ছে।

সমাধান: এই সমস্যাটি সমাধান করতে এই মাভেন নির্ভরতা ব্যবহার করুন:

<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi-ooxml</artifactId>
   <version>3.15</version>
</dependency>

-হরি কৃষ্ণ নীলা


2

1) সমস্ত জারগুলি পিওআই ফোল্ডার থেকে আমদানি করা 2) সমস্ত জার্সকে অক্সএমএমএল ফোল্ডার থেকে আমদানি করা যা পিওআই ফোল্ডারের একটি উপ-ডিরেক্টরি 3) সমস্ত জারগুলি লিব ফোল্ডার থেকে আমদানি করা হয় যা পিওআই ফোল্ডারের একটি উপ-ডিরেক্টরি

String fileName = "C:/File raw.xlsx";
File file = new File(fileName);
FileInputStream fileInputStream;
Workbook workbook = null;
Sheet sheet;
Iterator<Row> rowIterator;
try {
        fileInputStream = new FileInputStream(file);
        String fileExtension = fileName.substring(fileName.indexOf("."));
        System.out.println(fileExtension);
        if(fileExtension.equals(".xls")){
        workbook  = new HSSFWorkbook(new POIFSFileSystem(fileInputStream));
        }
        else if(fileExtension.equals(".xlsx")){
        workbook  = new XSSFWorkbook(fileInputStream);
        }
        else {
        System.out.println("Wrong File Type");
        } 
        FormulaEvaluator evaluator workbook.getCreationHelper().createFormulaEvaluator();
        sheet = workbook.getSheetAt(0);
        rowIterator = sheet.iterator();
        while(rowIterator.hasNext()){
        Row row = rowIterator.next();
        Iterator<Cell> cellIterator = row.cellIterator();
        while (cellIterator.hasNext()){
        Cell cell = cellIterator.next();
        //Check the cell type after evaluating formulae
       //If it is formula cell, it will be evaluated otherwise no change will happen
        switch (evaluator.evaluateInCell(cell).getCellType()){
        case Cell.CELL_TYPE_NUMERIC:
        System.out.print(cell.getNumericCellValue() + " ");
        break;
        case Cell.CELL_TYPE_STRING:
        System.out.print(cell.getStringCellValue() + " ");
        break;
        case Cell.CELL_TYPE_FORMULA:
        Not again
        break;
        case Cell.CELL_TYPE_BLANK:
        break;
        }
}
 System.out.println("\n");
}
//System.out.println(sheet);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}​

সারিটি আমদানি করছে না ... আপনি কি জার ফাইলের লিঙ্কটি ভাগ করে নিতে পারেন দয়া করে
ডেমো

1

আমারও একই সমস্যা ছিল, তাই আমি poi-3.17.jar ফাইলটি খনন করেছিলাম এবং ভিতরে কোনও এক্সএসএফ প্যাকেজ ছিল না।

আমি তখন অন্য ফাইলগুলির মধ্যে দিয়ে গিয়েছিলাম এবং xssf int poi-ooxML-3.17.jar খুঁজে পেয়েছি

সুতরাং মনে হচ্ছে সমাধানগুলি যুক্ত করা

poi-ooxml-3.17.jar

আপনার প্রকল্পে, যেমন এটি কাজ করে বলে মনে হচ্ছে (কমপক্ষে আমার জন্য)


0

আপনি পরিবেশের বর্ণনা দেন নি, যাইহোক, আপনার অ্যাপাচি পোই লাইব্রেরি ডাউনলোড করা উচিত। আপনি যদি গ্রহপ ব্যবহার করছেন, আপনার মূল প্রকল্পে ডান ক্লিক করুন, সুতরাং বৈশিষ্ট্য এবং জাভা বিল্ড পাথে আপনার প্রকল্পে বাহ্যিক জার যুক্ত করুন এবং সেই লাইব্রেরি আমদানি করুন:

xmlbeans-2.6.0; poi-ooxML-schemas- ...; poi-ooxML- ...; poi- ....;


0

আমার প্রয়োগের জন্য আমার নিম্নলিখিত ফাইলগুলির প্রয়োজন:

  • POI-ooxml-স্কিমের-3.14.20160307.jar
  • commons-codec-1.10.jar (এটি আপনি জিপ ফাইলের জিপ ফাইলটির "lib" ফোল্ডারে ছিলেন)
  • curvesapi-1.03.jar ("ooxML-lib" ফোল্ডারে)
  • POI-3.14-20160307.jar
  • POI-ooxml-3.14-20160307.jar
  • xmlbeans-2.6.0.jar ("ooxML-lib" ফোল্ডারে)

(যদিও সত্যই, আমি নিশ্চিত যে তারা সমস্ত প্রয়োজনীয় ...) এটি কিছুটা বিভ্রান্তিকর কারণ তারা সেভাবে প্যাকেজড। আমি এগুলিকে আমার নিজের "lib" ফোল্ডারে ম্যানুয়ালি রাখার দরকার ছিল এবং তারপরে রেফারেন্সগুলি যুক্ত করতে পারি ...

ম্যাভেন সর্বদা আমার প্রয়োজনের চেয়ে বেশি ডাউনলোড করে বলে মনে হয়, তাই আমি সর্বদা লিবারি / ডিএল এবং ম্যানুয়ালি এর মতো জিনিস রাখি।


অ্যাপাচি পিওআই একটি সহজ পৃষ্ঠা সরবরাহ করে যা কীসের জন্য কি জারগুলি প্রয়োজন তা ব্যাখ্যা করে এবং আপনার যা যা প্রয়োজন তা বাইনারি ডাউনলোডে আসে, সুতরাং এটি বিভ্রান্ত হওয়ার বা রহস্যের দরকার নেই!
গ্যাগ্রাভায়ার

আপনি যদি মাভেন ব্যবহার করতে চলেছেন তবে সেই পৃষ্ঠাটি সহজ, তবে আমি ম্যানুয়ালি নির্ভরতা যুক্ত করতে পছন্দ করি। পৃষ্ঠাটি পৃথকভাবে সমস্ত কিছু তালিকাভুক্ত করে না। তাদের মধ্যে কিছু বিল্ড টাইম হিসাবে চিহ্নিত করা যায় না, তবে আপনি রান-টাইমে ব্যতিক্রমগুলি পরীক্ষা করে তাদের খুঁজে পাবেন। আমার বাস্তবায়নটি একটি জেটিবেলে এক্সএলএস এবং এক্সএলএসএক্স ফাইলগুলি আমদানি করে। উপরেরটিকে এটির জন্য প্রয়োজনীয় সমস্ত বলে মনে হয়েছিল।
pcalkins

1
সেখানে তালিকাভুক্ত সমস্ত কিছু বাইনারি ডাউনলোডে প্রেরণ করা হয়! উভয় উপাদানগুলি
কীভাবে জারগুলি

0

একাধিক জিনিস চেষ্টা করার পরে, আসলে কী কাজ করেছিল তা হল: ১. "পোই" এবং "পোই-অক্সএমএমএল" ম্যানুয়ালি ডাউনলোড করা 2. এই ডি / ডাব্লু জারগুলিকে "ম্যাভেন নির্ভরতা" এ যুক্ত করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.