Excel থেকে JSON কনভার্টার

XLSX, XLS, ODS ও CSV ফাইলকে সরাসরি আপনার ব্রাউজারেই JSON-এ রূপান্তর করুন। একটি worksheet বেছে নিন, অপশন সেট করুন, তারপর কপি বা ডাউনলোড করুন। ফাইল কখনো আপলোড হয় না।

আপনার Excel বা CSV ফাইল এখানে ফেলুন

অথবা

সমর্থিত: .xlsx · .xls · .ods · .csv

🔒 ব্যক্তিগত: আপনার ফাইল লোকালি পড়া হয় এবং কখনো আপলোড বা সংরক্ষণ করা হয় না। পৃষ্ঠা লোড হওয়ার পরে অফলাইনেও কাজ করে।

Excel to JSON কী করে?

Excel to JSON রূপান্তর স্প্রেডশিট ডেটাকে একটি মেশিন-পাঠযোগ্য ফরম্যাটে পরিণত করে, যা ডেভেলপার, ডেটা ইঞ্জিনিয়ার ও অ্যানালিস্টরা API, ডেটাবেস, স্ক্রিপ্ট ও কনফিগারেশন ফাইলে ডেটা পাঠাতে ব্যবহার করেন। এই টুলটি আপনার স্প্রেডশিটকে সম্পূর্ণ ডিভাইসেই SheetJS লাইব্রেরি দিয়ে পড়ে, তাই আপনার ডেটা আপনার কম্পিউটার থেকে কখনো বাইরে যায় না।

আউটপুট ফরম্যাট গাইড

মোডকখন ব্যবহার করবেনউদাহরণ আউটপুট
Array of objects REST API, ডেটাবেস, বেশিরভাগ ডেটা প্রসেসিং [{"Name":"Alice","Score":95}]
Array of arrays grid-ভিত্তিক প্রসেসিং, স্প্রেডশিট প্রতিফলন [["Name","Score"],["Alice",95]]
Minified কোড বা পেলোডে JSON এমবেড করা কোনো ফাঁকা জায়গা নেই, সবচেয়ে ছোট ফাইল আকার
Indented 2/4 স্পেস পঠনযোগ্যতা, ভার্সন-কন্ট্রোল ডিফ প্রিটি-প্রিন্টেড, প্রতি লাইনে একটি কি

স্প্রেডশিট ফরম্যাট: XLSX, XLS, ODS ও CSV-এর ভেতরে আসলে কী থাকে

এই টুল যে চারটি ফরম্যাট পড়ে সেগুলো কোনো ফাইল-পিকারে একরকম দেখায় কিন্তু ভেতরে খুব আলাদাভাবে তৈরি — এ কারণেই এদের সবগুলো পড়তে SheetJS-এর মতো লাইব্রেরি প্রয়োজন:

ফরম্যাটএটি কী
.xlsxOffice Open XML (ECMA-376 / ISO/IEC 29500 হিসেবে মানকীকৃত)। একই আইকন সত্ত্বেও, একটি XLSX ফাইল আসলে XML ডকুমেন্টের একটি ZIP আর্কাইভ — প্রতিটি worksheet-এর জন্য একটি অংশ, সঙ্গে শেয়ার্ড স্ট্রিং, স্টাইল ও রিলেশনশিপ। কোনো কপির নাম বদলে .zip করে দিন, তাহলে খুলে অংশগুলো দেখতে পারবেন।
.xlsপুরনো Excel 97–2003 ফরম্যাট, একটি প্রোপ্রাইটারি বাইনারি গঠন যাকে BIFF (Binary Interchange File Format) বলা হয়। এটি XML নয় ও মানুষ-পাঠযোগ্য নয়; এটিকে রেকর্ড-বাই-রেকর্ড ডিকোড করতে হয়।
.odsOpenDocument Spreadsheet (ISO/IEC 26300), যে ফরম্যাটটি LibreOffice ব্যবহার করে এবং Google Sheets থেকে এক্সপোর্ট করা যায়। XLSX-এর মতো এটিও XML-এর ZIP, তবে Microsoft-এর বদলে খোলা OpenDocument স্কিমা অনুসরণ করে।
.csvComma-Separated Values (RFC 4180 দ্বারা শিথিলভাবে মানকীকৃত)। সবচেয়ে সরল সম্ভাব্য ফরম্যাট — সাধারণ টেক্সট, প্রতি লাইনে এক row, ফিল্ড কমা দিয়ে পৃথক — কিন্তু টাইপ, worksheet, formula বা ফরম্যাটিং-এর কোনো ধারণা নেই। এটি নিছক grid।

যেহেতু XLSX, XLS ও ODS প্রত্যেকে কাঁচা cell-এর চেয়ে অনেক বেশি সংরক্ষণ করে — formula, নম্বর ফরম্যাট, একাধিক worksheet, স্টাইল — তাই JSON-এ রূপান্তর মানে কী রাখা হবে তা ঠিক করা। এই টুল গণনাকৃত cell মান (formula-র ফলাফল, formula-টেক্সট নয়) রাখে এবং স্টাইলিং বাদ দেয়, যা ঠিক তা-ই যা আপনি চান যখন লক্ষ্য ডেটাকে কোডে পাঠানো।

JSON কেন?

JSON (JavaScript Object Notation) ২০০০-এর দশকের শুরুতে Douglas Crockford নির্দিষ্ট করেছিলেন এবং এখন এটি সিস্টেমের মধ্যে কাঠামোবদ্ধ ডেটা পাঠানোর সাধারণ ভাষা। এটি ECMA-404 ও IETF RFC 8259 হিসেবে মানকীকৃত, এবং যদিও এটি JavaScript-এর object সিনট্যাক্স থেকে এসেছে, এটি সম্পূর্ণ ভাষা-নিরপেক্ষ — প্রতিটি বড় প্রোগ্রামিং ভাষা এটি পড়তে-লিখতে পারে। এর গুণ হলো এটি ঠিক সেইসব ডেটা গঠনের ওপর পরিষ্কারভাবে ম্যাপ হয় যা প্রোগ্রাম আগে থেকেই ব্যবহার করে: object (কি/ভ্যালু জোড়া), array (ক্রমবদ্ধ তালিকা), এবং কিছু আদিম টাইপ — string, number, boolean ও null

একটি স্প্রেডশিট, ধারণাগতভাবে, হেডার row-সহ মানের একটি grid, যা স্বাভাবিকভাবেই JSON-এর "array of objects" আকারে রূপান্তরিত হয় — প্রতিটি row কলাম হেডার দিয়ে কি-বিশিষ্ট একটি object। এ কারণেই JSON কোনো REST API-কে স্প্রেডশিট ডেটা পাঠাতে, ডেটাবেস সিড করতে, কোনো চার্ট বা টেমপ্লেট চালাতে, বা কনফিগারেশন সংরক্ষণ করতে পছন্দের ফরম্যাট। তবে, একটি জিনিস যা JSON-এ ইচ্ছাকৃতভাবে নেই তা হলো date টাইপ এবং কমেন্টের (comments) কোনো ধারণা — যা সরাসরি নিচের রূপান্তর জটিলতাগুলোর দিকে নিয়ে যায়।

সাবধানতা: তারিখ, সংখ্যা ও টাইপ

স্প্রেডশিট-থেকে-JSON রূপান্তরে বেশিরভাগ চমক আসে এই সত্য থেকে যে Excel মানগুলোকে যেভাবে দেখায় তার চেয়ে অনেক আলাদাভাবে সংরক্ষণ করে। এগুলোর দিকে খেয়াল রাখুন:

  • তারিখ আসলে সংখ্যা। Excel কোনো তারিখকে একটি সিরিয়াল নম্বর হিসেবে সংরক্ষণ করে — (কার্যত) ৩০ ডিসেম্বর ১৮৯৯ যুগ থেকে দিনের গণনা — এবং কেবল cell-এর ফরম্যাট এটিকে তারিখের মতো দেখায়। তাই "15/03/2024" দেখানো একটি cell 45366-এর মতো একটি সাদামাটা সংখ্যায় রূপান্তরিত হতে পারে। একটি বিখ্যাত খেয়ালও আছে: Excel ইচ্ছাকৃতভাবে 1900-কে লিপ ইয়ার ধরে (এটি নয় — ১৯৮০-এর দশকে ফাইল সামঞ্জস্যের জন্য Lotus 1-2-3 থেকে উত্তরাধিকারসূত্রে পাওয়া একটি বাগ), তাই ২৮ ফেব্রুয়ারি 1900-এর পরের প্রতিটি সিরিয়াল তারিখ সরল গণনা থেকে একদিন "আলাদা" থাকে। যদি আপনার তারিখ সংখ্যা হিসেবে বেরোয়, তবে আগে উৎস কলামটিকে text হিসেবে ফরম্যাট করুন, বা JSON-কে পোস্ট-প্রসেস করে সিরিয়ালকে ISO তারিখে রূপান্তর করুন।
  • অগ্রণী শূন্য হারিয়ে যায়। 007890-এর মতো কোনো PIN কোড বা অ্যাকাউন্ট নম্বর 7890 হয়ে যায় যদি Excel এটিকে সংখ্যা হিসেবে সংরক্ষণ করে থাকে। শূন্য ধরে রাখতে রূপান্তরের আগে এমন কলামগুলোকে স্প্রেডশিটে text হিসেবে ফরম্যাট করুন।
  • বড় সংখ্যা নির্ভুলতা হারায়। JSON সংখ্যা (এবং JavaScript) 64-বিট ফ্লোটিং পয়েন্ট ব্যবহার করে, যা কেবল প্রায় ১৫–১৬টি সার্থক অঙ্ক পর্যন্ত সঠিক। সংখ্যা হিসেবে সংরক্ষিত ১৬-অঙ্কের কার্ড নম্বর বা কোনো দীর্ঘ ID গোল হয়ে যেতে পারে; সেগুলো text হিসেবে রাখুন।
  • বৈজ্ঞানিক সংকেত (scientific notation)। কোনো দীর্ঘ সংখ্যাসূচক স্ট্রিং যাকে Excel সংখ্যা ধরে নিয়েছে, তা 1.23457E+14 হিসেবে দেখা যেতে পারে। আবারও একই সমাধান — কলামটিকে text হিসেবে সংরক্ষণ করুন যাতে এটি কোনো পরিমাণের বদলে একটি লেবেল হিসেবে বিবেচিত হয়।

মোটা দাগে নিয়ম: যা কিছু কোনো পরিমাণের বদলে একটি শনাক্তকারী (identifier) — ID, কোড, ফোন নম্বর, পিনকোড — তা রূপান্তরের আগে স্প্রেডশিটে text হিসেবে সংরক্ষণ করা উচিত, যাতে তা একটি বিশ্বস্ত স্ট্রিং হিসেবে যাত্রা সম্পূর্ণ করতে পারে।

CSV-এর ফাঁদ: ডিলিমিটার, কোটিং ও এনকোডিং

CSV-এর সরলতা কিছু ফাঁদ লুকিয়ে রাখে যা XLSX কাঠামোবদ্ধ হওয়ার কারণে এড়িয়ে যায়:

  • মানের ভেতরে কমা। Mumbai, Maharashtra-এর মতো কোনো ফিল্ডে ডিলিমিটার নিজেই উপস্থিত। RFC 4180 এটিকে এমন ফিল্ডগুলোকে ডবল কোটে মুড়ে সামলায় ("Mumbai, Maharashtra"), এবং কোটেড ফিল্ডের ভেতরের কোট দ্বিগুণ করা হয় ("")। যে পার্সার শুধু কমায় ভাঙে সেটি এতে ভেঙে যাবে — সঠিক CSV পার্সিং কোটিং-এর মর্যাদা দেয়, এ কারণেই CSV-কে কোনো সরল স্প্লিটারে পেস্ট করলে প্রায়শই ঠিকানা বিকৃত হয়।
  • ডিলিমিটার সবসময় কমা নয়। যেসব অঞ্চলে কমা দশমিক বিভাজক (ইউরোপের বেশিরভাগ), সেখানে স্প্রেডশিট প্রায়ই এর বদলে একটি সেমিকোলন ডিলিমিটার দিয়ে এক্সপোর্ট করে। যদি কোনো CSV একটিই মোটা কলামে রূপান্তরিত হয়, তবে সাধারণত ভুল ডিলিমিটারই এর কারণ।
  • ক্যারেক্টার এনকোডিং। CSV কোনো এনকোডিং ঘোষণা বহন করে না, তাই নন-ASCII টেক্সট (₹, উচ্চারণ চিহ্ন, ভারতীয় লিপিতে নাম) কেবল তখনই টেকে যখন ফাইলটি UTF-8 হিসেবে সংরক্ষিত হয়। শুরুতে থাকা একটি বাইট-অর্ডার মার্ক (BOM) কখনো কখনো প্রথম cell-এর শুরুতে বিপথগামী অক্ষর হিসেবে দেখা দেয়। Excel থেকে "CSV UTF-8" হিসেবে সংরক্ষণ করলে এর বেশিরভাগ এড়ানো যায়।

যে ডেটায় কমা, কোট, লাইন ব্রেক বা অ-ইংরেজি টেক্সট থাকে, তার জন্য একটি XLSX বা ODS ফাইল CSV-এর চেয়ে অনেক বেশি শক্তপোক্ত, কারণ গঠন স্পষ্ট, বিরামচিহ্ন থেকে অনুমিত নয়।

স্প্রেডশিট থেকে API বা ডেটাবেস পর্যন্ত: একটি ওয়ার্কফ্লো

JSON-এ রূপান্তর সাধারণত কোনো বড় কাজের একটি ধাপ। একটি নির্ভরযোগ্য প্যাটার্ন এমন দেখায়:

  1. আগে worksheet পরিষ্কার করুন। সবচেয়ে ওপরে একটিই, পরিপাটি হেডার row রাখুন; মার্জ করা cell, খালি স্পেসার row ও সাজসজ্জার কলাম সরান; এবং ID-ধরনের কলামগুলোকে text হিসেবে ফরম্যাট করুন যাতে সেগুলো নির্ভুলতা বা অগ্রণী শূন্য না হারায়।
  2. আউটপুট আকার বেছে নিন। নামযুক্ত ফিল্ড গ্রহণ করে এমন প্রায় সবকিছুর জন্য — API, ডেটাবেস, টেমপ্লেট — "প্রথম row-কে হেডার ধরুন" চালু রেখে array of objects ব্যবহার করুন। যখন আপনার ঠিক grid ধরে রাখা দরকার তখন array of arrays ব্যবহার করুন।
  3. ইনডেন্টেশন বেছে নিন। প্রিটি-প্রিন্টেড (2 বা 4 স্পেস) পড়া ও পরিষ্কার ভার্সন-কন্ট্রোল ডিফের জন্য সবচেয়ে ভালো; কোডে JSON এমবেড করা বা সংক্ষিপ্ত পেলোড হিসেবে পাঠানোর জন্য মিনিফাইড সবচেয়ে ভালো।
  4. পাঠানোর আগে যাচাই করুন। ফলাফলটিকে কোনো JSON ফরম্যাটার ও ভ্যালিডেটর-এ পেস্ট করুন যাতে নিশ্চিত হয় এটি পার্স হয়, বা JSON থেকে TypeScript-এ পেস্ট করে সেই ডেটার জন্য টাইপ সংজ্ঞা তৈরি করুন যা আপনি ইমপোর্ট করতে চলেছেন।

যেহেতু এখানে প্রতিটি ধাপ আপনার ব্রাউজারে চলে, আপনি এই সবকিছু গোপনীয় ডেটা দিয়ে করতে পারেন — বেতন worksheet, গ্রাহক তালিকা, পরীক্ষা রেকর্ড — কখনো তা আপনার মেশিন থেকে বাইরে যেতে না দিয়েই।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

আমার Excel ফাইল কি কোথাও আপলোড হয়?
না। এই কনভার্টারটি সম্পূর্ণভাবে আপনার ব্রাউজারে SheetJS লাইব্রেরি ব্যবহার করে চলে। আপনার ফাইলটি সরাসরি আপনার লোকাল ডিস্ক থেকে মেমরিতে পড়া হয় এবং কোনো সার্ভারে কখনো পাঠানো হয় না। ট্যাব বন্ধ করলেই এটি চলে যায় — কিছুই সংরক্ষণ করা হয় না।
কোন কোন ফাইল ফরম্যাট সমর্থিত?
এই কনভার্টারটি .xlsx (Excel 2007+), .xls (Excel 97–2003), .ods (LibreOffice / Google Sheets এক্সপোর্ট) ও .csv ফাইল গ্রহণ করে। CSV ফাইলের ক্ষেত্রে worksheet সিলেক্টর লুকানো থাকে, কারণ সেখানে কেবল একটিই worksheet থাকে। ম্যাক্রো-সক্ষম ওয়ার্কবুক (.xlsm) গ্রহণ করা হয় তবে ম্যাক্রো চালানো হয় না — কেবল ডেটা পড়া হয়।
"Array of objects" ও "Array of arrays"-এর মধ্যে পার্থক্য কী?
Array of objects ("প্রথম row-কে হেডার ধরুন" চালু থাকলে ডিফল্ট) এমন JSON তৈরি করে: [{"Name":"Alice","Score":95},{"Name":"Bob","Score":87}] — প্রতিটি row হেডার row দিয়ে কি-বিশিষ্ট একটি object হয়ে যায়। Array of arrays এমন তৈরি করে: [["Name","Score"],["Alice",95],["Bob",87]] — হেডারসহ প্রতিটি row একটি সাধারণ array। যখন আপনার নামযুক্ত ফিল্ড দরকার (যেমন কোনো REST API বা ডেটাবেসে ডেটা পাঠানো) তখন array-of-objects ব্যবহার করুন। যখন কাঁচা grid গঠন ধরে রাখতে চান তখন array-of-arrays ব্যবহার করুন।
খালি cell-এর কী হয়?
array-of-objects মোডে, যে cell-গুলো সম্পূর্ণ খালি সেগুলো object থেকে বাদ দেওয়া হয় (কি null হওয়ার বদলে দেখাই যাবে না)। array-of-arrays মোডে, খালি cell null হয়ে যায়। আপনার ডাউনস্ট্রিম কোডের প্রয়োজন হলে JSON-কে পোস্ট-প্রসেস করে অনুপস্থিত কি-গুলোকে null বা কোনো ডিফল্ট মান দিয়ে প্রতিস্থাপন করতে পারেন।
আমি কত বড় ফাইল রূপান্তর করতে পারি?
কোনো কঠোর সার্ভার-সাইড সীমা নেই, কারণ সবকিছু আপনার ব্রাউজারেই ঘটে। বাস্তবে, বেশিরভাগ আধুনিক ব্রাউজার 10–50 MB পর্যন্ত Excel ফাইল স্বচ্ছন্দে সামলাতে পারে। খুব বড় ফাইল (লক্ষ লক্ষ row) কয়েক সেকেন্ড নিতে পারে ও উল্লেখযোগ্য মেমরি ব্যবহার করতে পারে। আপনার ব্রাউজার ট্যাব ক্র্যাশ করলে, প্রথমে ফাইলটিকে ছোট ছোট অংশে ভাগ করে দেখুন।
আমি কি একাধিক worksheet-এর ওয়ার্কবুক থেকে কোনো নির্দিষ্ট worksheet রূপান্তর করতে পারি?
হ্যাঁ। একাধিক worksheet-বিশিষ্ট কোনো ওয়ার্কবুক লোড করলে একটি worksheet সিলেক্টর ড্রপডাউন দেখা যায়। নাম দিয়ে যেকোনো worksheet বেছে নিন এবং JSON আউটপুট সঙ্গে সঙ্গে আপডেট হয়ে যায়। ডাউনলোড বাটন সবসময় বর্তমানে নির্বাচিত worksheet-টি ডাউনলোড করে।

আরও টুল দেখুন

সব 70টি টুল দেখুন →