জাভাতে এক্সেল শিটগুলি পড়ার জন্য আরও ভাল এপিআই কী - জেএক্সএল বা অ্যাপাচি পিওআই [বন্ধ]


94

2 টি এপিআই এর মধ্যে কোনটি এক্সেল শিটগুলি পড়া / লিখতে / সম্পাদনা করা সহজ? এই API গুলি কি CSV এক্সটেনশানগুলিকে সমর্থন করে না?

File.xls এবং file.xlsx এর জন্য জেএক্সএল ব্যবহার করে, আমি এর মতো একটি ব্যতিক্রম পাই:

jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
    at jxl.read.biff.File.<init>(File.java:127)
    at jxl.Workbook.getWorkbook(Workbook.java:268)
    at core.ReadXLSheet.contentReading(ReadXLSheet.java:46)
    at core.ReadXLSheet.init(ReadXLSheet.java:22)
    at core.ReadXLSheet.main(ReadXLSheet.java:72)

.Xls এবং .xlsx এক্সটেনশনের জন্য উভয়ই। আমি যে জাভা সংস্করণটি ব্যবহার করছি তা হ'ল: JDK1.6


4
কী সম্পর্কে: "জাভাতে মাইক্রোসফ্ট এক্সেল স্প্রেডশিটগুলি (জেএক্সএল, অ্যাপাচি পিওআই, ইত্যাদি) পড়তে / লিখতে কোন এপিআই রয়েছে? সেগুলির প্রতিটি ব্যবহারের জন্য সেরা পরিস্থিতিগুলি কী?"
ক্লাসিও মেন্ডেস

উত্তর:


258

আমি উভয় ব্যবহার করেছেন JXL (এখন "JExcel") এবং অ্যাপাচি থাকা POI । প্রথমে আমি জেএক্সএল ব্যবহার করেছি, তবে এখন আমি অ্যাপাচি পিওআই ব্যবহার করি।

প্রথমত, এখানে এমন দুটি জিনিস রয়েছে যেখানে উভয় এপিআই-এর একই কার্যকারিতা রয়েছে:

  • দুটোই ফ্রি
  • ঘর স্টাইলিং: প্রান্তিককরণ, ব্যাকগ্রাউন্ড (রঙ এবং নিদর্শন), সীমানা (প্রকার এবং রং), ফন্ট সমর্থন (ফন্টের নাম, রঙ, আকার, গা bold়, তির্যক, স্ট্রাইকআউট, আন্ডারলাইন)
  • সূত্র
  • হাইপারলিঙ্কস
  • মার্জিত কক্ষ অঞ্চলগুলি
  • সারি এবং কলামগুলির আকার
  • ডেটা ফর্ম্যাটিং: নম্বর এবং তারিখ
  • কক্ষের মধ্যে পাঠ্য মোড়ানো
  • নিশ্চল ফলকে
  • শিরোনাম / পাদচরণ সমর্থন support
  • বিদ্যমান এবং নতুন স্প্রেডশিটগুলি পড়ুন / লিখুন
  • উভয়ই স্প্রেডশিটে বিদ্যমান অবজেক্টগুলিকে যথাসম্ভব অক্ষত অবস্থায় রাখার চেষ্টা করে।

তবে বিভিন্ন পার্থক্য রয়েছে:

  • সম্ভবত সবচেয়ে উল্লেখযোগ্য পার্থক্য হ'ল জাভা জেএক্সএল এক্সেল 2007+ ".xlsx" ফর্ম্যাটটিকে সমর্থন করে না; এটি কেবলমাত্র পুরানো বিআইএফএফ (বাইনারি) "। xls" ফর্ম্যাটটিকে সমর্থন করে। অ্যাপাচি পিওআই উভয়কে একটি সাধারণ নকশা দিয়ে সহায়তা করে।
  • অতিরিক্তভাবে, জেএক্সএল এপিআইএর জাভা অংশটি সর্বশেষ ২০০৯ সালে আপডেট হয়েছিল (3 বছর, 4 মাস আগে আমি এটি লেখার সাথে সাথে), যদিও দেখে মনে হচ্ছে একটি সি # এপিআই রয়েছে। অ্যাপাচি পিওআই সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়।
  • জেএক্সএল শর্তসাপেক্ষ বিন্যাসকে সমর্থন করে না, অ্যাপাচি পিওআই করে, যদিও এটি তাত্পর্যপূর্ণ নয়, কারণ আপনি শর্তাধীন আপনার নিজের কোড দিয়ে ঘরগুলি বিন্যাস করতে পারেন।
  • জেএক্সএল সমৃদ্ধ পাঠ্য বিন্যাসকে সমর্থন করে না , যেমন একটি পাঠ্য স্ট্রিংয়ের মধ্যে বিভিন্ন ফর্ম্যাটিং; অ্যাপাচি পিওআই এটি সমর্থন করে।
  • জেএক্সএল কেবলমাত্র কয়েকটি পাঠ্য ঘূর্ণন সমর্থন করে: অনুভূমিক / উল্লম্ব, +/- 45 ডিগ্রি এবং স্ট্যাকড; অ্যাপাচি পিওআই স্ট্যাকযুক্ত যেকোন সংখ্যক ডিগ্রির সংখ্যা সমর্থন করে।
  • জেএক্সএল অঙ্কন আকারগুলি সমর্থন করে না; আপাচে পিওআই করেন।
  • জেএক্সএল সর্বাধিক পৃষ্ঠা সেটআপ সেটিংস যেমন ল্যান্ডস্কেপ / প্রতিকৃতি, মার্জিনস, কাগজের আকার এবং জুমকে সমর্থন করে। অ্যাপাচি পিওআই সেই সমস্ত প্লাস পুনরাবৃত্তি সারি এবং কলামগুলিকে সমর্থন করে।
  • জেএক্সএল স্প্লিট পেনগুলি সমর্থন করে না; আপাচে পিওআই করেন।
  • জেএক্সএল চার্ট তৈরি বা কারচুপি সমর্থন করে না; সেই সমর্থন এখনও অ্যাপাচি পিওআইতে নেই, তবে একটি এপিআই ধীরে ধীরে গঠন শুরু করছে।
  • অ্যাপাচি পিওআইয়ের জেএক্সএল এর চেয়ে আরও বেশি বিস্তৃত নথিপত্র এবং উদাহরণ রয়েছে available

অতিরিক্তভাবে, পিওআইতে কেবলমাত্র প্রধান "ব্যবহারকারী মডেল" এপিআই থাকে না, তবে ইভেন্টটি ভিত্তিক এপিআইও রয়েছে যদি আপনি যা করতে চান তা স্প্রেডশিট সামগ্রীটি পড়তে হয়।

উপসংহারে, আরও ভাল ডকুমেন্টেশন, আরও বৈশিষ্ট্য, সক্রিয় বিকাশ এবং এক্সেল 2007+ ফর্ম্যাট সহায়তার কারণে আমি অ্যাপাচি পিওআই ব্যবহার করি।


বিস্তৃত ব্যাখ্যার জন্য ধন্যবাদ।
স্বগতিকা

8
পরিষ্কার, সংক্ষিপ্ত এবং অত্যন্ত সহায়ক জন্য +1
রন

4
getContents()JExcelAPI এর নোংরা পদ্ধতিটি আমাকে অনেক সময় বাঁচায়। পিওআইয়ের সাথে আপনাকে অবশ্যই এটির ঘরের প্রকারটি পরীক্ষা করতে হবে, তারপরে তার মানটি (যদি এটি সংখ্যাসূচক কোষ হয় তবে এটির তারিখ কোষ কিনা তা আপনাকে পরীক্ষা করা উচিত) এবং অবশেষে এটিকে বিভিন্ন পদ্ধতির সাথে স্ট্রিং মানে রূপান্তর করতে হবে, এটি এত অসুবিধাজনক। কল্পনাও করা যায় না জোকসেলাপি যেমন পিওআই এমন নোংরা কিন্তু সুবিধাজনক পদ্ধতি সরবরাহ করে না।
লিউইয়ান 研

4
POI হ'ল ইভেন্ট-ভিত্তিক পড়া if বিশেষত মোবাইল ডিভাইসগুলিতে (= অ্যান্ড্রয়েড) সীমাবদ্ধ হিপ আকার এবং জিসি নিয়ে কাজ করার সময় এটি অনেক সহায়তা করে। জেএক্সএল সহ একটি সাধারণ এক্সএলএস পড়া প্রায়শই অ্যাপের মেমরির সীমাতে পৌঁছে যায়, ফলে অ্যাপটি ক্র্যাশ হয়ে যায়।
dermatthias

4
আমাকে পিওআইতে মাইগ্রেট করতে যে গুরুত্বপূর্ণ কারণগুলির মধ্যে একটি হ'ল স্টিমিং এপিআই ব্যবহার করার নমনীয়তা যা আপনি যখন বিপুল পরিমাণে ডেটা সহ এক্সেল পড়তে চান তখন তা আবশ্যক। আপনি যখন এক্সেলটি খুলবেন তখন ভোলের ডেটা মেমরিতে লোড হবে না, যদি এক্সেলের মধ্যে ডেটা বিশাল থাকে। স্ট্রিমিংয়ের সাথে, আপনি শীটটি বিশ্লেষণ করার পরে আপনার এক্সেল / কোনও অফিস নথির পুরো সামগ্রী মেমরিতে লোড হবে না।
অশোক কোই

12

আমি পিওআই ব্যবহার করেছি

যদি আপনি এটি ব্যবহার করেন তবে সেই সেল বিন্যাসগুলি লক্ষ্য করুন: একটি তৈরি করুন এবং সেলটির জন্য প্রতিবার তৈরি করার পরিবর্তে এটি বেশ কয়েকবার ব্যবহার করুন, এটি বিশাল মেমরির ব্যবহারের পার্থক্য বা বড় ডেটা।


5

আমি জেএক্সএল এর সাথে পরিচিত নই এবং আমরা পিওআই ব্যবহার করি। পিওআই ভালভাবে রক্ষণাবেক্ষণ করে এবং বাইনারি .xls ফর্ম্যাট এবং অফিসে 2007 সালে চালু হওয়া নতুন এক্সএমএল ভিত্তিক ফর্ম্যাট উভয়ই পরিচালনা করতে পারে।

সিএসভি ফাইলগুলি এক্সেল ফাইল নয়, এটি পাঠ্য ভিত্তিক ফাইল, তাই এই লাইব্রেরিগুলি সেগুলি পড়বে না। আপনাকে নিজেরাই একটি সিএসভি ফাইল বিশ্লেষণ করতে হবে। আমি কোনও সিএসভি ফাইল লাইব্রেরি সম্পর্কে অবগত নই, তবে আমিও সন্ধান করিনি।


1

জাভাতে "সরল" সিএসভি ফাইলগুলি পড়ার জন্য, এখানে ওপেনসিএসভি নামে একটি লাইব্রেরি রয়েছে, এটি এখানে পাওয়া যায়: http://opencsv.sourceforge.net/


4
অ্যাপাচি এখন সিএসভির জন্য একটি কমন্স অফার দিচ্ছে, কমন্স.এপাচি.অর্গ.কম / কমারস-সিএসভি । এটি বেশ ভাল কাজ করে, এবং দুর্দান্ত নামটির ব্র্যান্ড রয়েছে।
48 এ ট্রোগানেন্ডাররা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.