Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
xlsx — SheetJS xlsx 0.18.5 फ़ोर्क जिसमें CVE-2023-30533 और CVE-2024-22363 सुधार शामिल हैं | Kitploit
उपकरण/GitHubGitHub/weareu/xlsx
सामान्य उपयोगिताएँएन्क्रिप्शन/डिक्रिप्शन उपकरणडेटा रिकवरीउपयोगिताएँ और फ्रेमवर्क
GitHubweareu/xlsx

xlsx

SheetJS xlsx 0.18.5 फ़ोर्क जिसमें CVE-2023-30533 और CVE-2024-22363 सुधार शामिल हैं

रिपॉजिटरी देखें
6 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

SheetJS

SheetJS सामुदायिक संस्करण, लगभग किसी भी जटिल स्प्रेडशीट से उपयोगी डेटा निकालने और नई स्प्रेडशीट बनाने के लिए युद्ध-परीक्षित ओपन-सोर्स समाधान प्रदान करता है, जो पुरातन और आधुनिक सॉफ़्टवेयर दोनों के साथ समान रूप से काम करेंगी।

SheetJS Pro डेटा प्रोसेसिंग से परे समाधान प्रदान करता है: जटिल टेम्प्लेट को आसानी से संपादित करें; स्टाइलिंग से अपने भीतर के पिकासो को बाहर लाएँ; इमेज/ग्राफ़/पिवट टेबल के साथ कस्टम शीट बनाएँ; फ़ॉर्मूला एक्सप्रेशन का मूल्यांकन करें और गणनाओं को वेब ऐप्स में पोर्ट करें; सामान्य स्प्रेडशीट कार्यों को स्वचालित करें, और भी बहुत कुछ!

License Build Status Snyk Vulnerabilities npm Downloads Analytics

ब्राउज़र परीक्षण और समर्थन मैट्रिक्स

Build Status

समर्थित फ़ाइल प्रारूप

प्रारूप समर्थन का सिर्को ग्राफ़

ग्राफ़ लीजेंड

विषय-सूची

विषय-सूची दिखाने के लिए विस्तार करें
  • आरंभ करना
    • स्थापना
    • उपयोग
    • SheetJS का ज़ेन
    • JS इकोसिस्टम डेमो
  • डेटा प्राप्त करना और निकालना
    • वर्कबुक पार्स करना
    • JSON और JS डेटा प्रोसेस करना
    • HTML टेबल प्रोसेस करना
  • डेटा प्रोसेस करना
    • वर्कबुक संरचना संशोधित करना
    • सेल मान संशोधित करना
    • अन्य वर्कशीट / वर्कबुक / सेल गुण संशोधित करना
  • डेटा पैकेजिंग और रिलीज़ करना
    • वर्कबुक लिखना
    • उदाहरण लिखना
    • स्ट्रीमिंग लेखन
    • JSON और JS डेटा उत्पन्न करना
    • HTML टेबल उत्पन्न करना
    • एकल-वर्कशीट स्नैपशॉट उत्पन्न करना
  • इंटरफ़ेस
    • पार्सिंग फ़ंक्शन
    • लेखन फ़ंक्शन
    • उपयोगिताएँ
  • सामान्य स्प्रेडशीट प्रारूप
    • सामान्य संरचनाएँ
    • सेल ऑब्जेक्ट
      • डेटा प्रकार
      • दिनांक
    • शीट ऑब्जेक्ट
      • वर्कशीट ऑब्जेक्ट
      • चार्टशीट ऑब्जेक्ट
      • मैक्रोशीट ऑब्जेक्ट
      • डायलॉगशीट ऑब्जेक्ट
    • वर्कबुक ऑब्जेक्ट
      • वर्कबुक फ़ाइल गुण

आरंभ करना

स्थापना

स्टैंडअलोन ब्राउज़र स्क्रिप्ट

संपूर्ण ब्राउज़र स्टैंडअलोन बिल्ड dist/xlsx.full.min.js में सहेजा जाता है और इसे script टैग के साथ सीधे किसी पृष्ठ में जोड़ा जा सकता है:```html

root@kitploit:~
<details>
  <summary><b>CDN उपलब्धता</b> (देखने के लिए क्लिक करें)</summary>

|    CDN     | URL                                        |
|-----------:|:-------------------------------------------|
|    `unpkg` | <https://unpkg.com/xlsx/>                  |
| `jsDelivr` | <https://jsdelivr.com/package/npm/xlsx>    |
|    `CDNjs` | <https://cdnjs.com/libraries/xlsx>         |

उदाहरण के लिए, `unpkg` नवीनतम संस्करण निम्नलिखित पते पर उपलब्ध कराता है:```html
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
ब्राउज़र बिल्ड (दिखाने के लिए क्लिक करें)

पूर्ण एकल-फ़ाइल संस्करण dist/xlsx.full.min.js पर उत्पन्न होता है

dist/xlsx.core.min.js कोडपेज लाइब्रेरी छोड़ देता है (XLS एन्कोडिंग के लिए कोई समर्थन नहीं)

एक पतला बिल्ड dist/xlsx.mini.min.js पर उत्पन्न होता है। पूर्ण बिल्ड की तुलना में:

  • कोडपेज लाइब्रेरी छोड़ी गई (XLS एन्कोडिंग के लिए कोई समर्थन नहीं)
  • XLSB / XLS / Lotus 1-2-3 / SpreadsheetML 2003 / Numbers के लिए कोई समर्थन नहीं
  • नोड स्ट्रीम उपयोगिताएँ हटा दी गईं

bower के साथ:```bash $ bower install js-xlsx

root@kitploit:~
**ECMAScript Modules**

ECMAScript Module बिल्ड `xlsx.mjs` में सहेजा गया है और इसे सीधे
`type=module` का उपयोग करके `script` टैग के साथ किसी पेज में जोड़ा जा सकता है:```html
<script type="module">
import { read, writeFileXLSX } from "./xlsx.mjs";

/* load the codepage support library for extended support with older formats  */
import { set_cptable } from "./xlsx.mjs";
import * as cptable from './dist/cpexcel.full.mjs';
set_cptable(cptable);
</script>

npm पैकेज मॉड्यूल को भी उजागर करता है module पैरामीटर के साथ, जो Angular और अन्य प्रोजेक्ट्स में समर्थित है:```ts import { read, writeFileXLSX } from "xlsx";

/* load the codepage support library for extended support with older formats */ import { set_cptable } from "xlsx"; import * as cptable from 'xlsx/dist/cpexcel.full.mjs'; set_cptable(cptable);

root@kitploit:~
**Deno**

`xlsx.mjs` को Deno में आयात किया जा सकता है।  यह `unpkg` से उपलब्ध है:```ts
// @deno-types="https://unpkg.com/xlsx/types/index.d.ts"
import * as XLSX from 'https://unpkg.com/xlsx/xlsx.mjs';

/* load the codepage support library for extended support with older formats  */
import * as cptable from 'https://unpkg.com/xlsx/dist/cpexcel.full.mjs';
XLSX.set_cptable(cptable);

NodeJS

npm के साथ:```bash $ npm install xlsx

root@kitploit:~
डिफ़ॉल्ट रूप से, मॉड्यूल `require` का समर्थन करता है:```js
var XLSX = require("xlsx");

मॉड्यूल import के उपयोग के लिए xlsx.mjs के साथ भी आता है:```js import * as XLSX from 'xlsx/xlsx.mjs';

/* load 'fs' for readFile and writeFile support */ import * as fs from 'fs'; XLSX.set_fs(fs);

/* load 'stream' for stream support */ import { Readable } from 'stream'; XLSX.stream.set_readable(Readable);

/* load the codepage support library for extended support with older formats */ import * as cpexcel from 'xlsx/dist/cpexcel.full.mjs'; XLSX.set_cptable(cpexcel);

root@kitploit:~
**Photoshop और InDesign**

`dist/xlsx.extendscript.js` Photoshop और InDesign के लिए एक ExtendScript बिल्ड है
जो `npm` पैकेज में शामिल है।  इसे सीधे एक
`#include` निर्देश के साथ संदर्भित किया जा सकता है:```extendscript
#include "xlsx.extendscript.js"
Internet Explorer और ECMAScript 3 अनुकूलता (क्लिक करके देखें)

जावास्क्रिप्ट इंजनों के साथ व्यापक अनुकूलता के लिए, लाइब्रेरी ECMAScript 3 भाषा बोली के साथ-साथ Array#forEach जैसी कुछ ES5 सुविधाओं का उपयोग करके लिखी गई है। पुराने ब्राउज़रों को लापता फ़ंक्शन प्रदान करने के लिए शिम की आवश्यकता होती है।

शिम का उपयोग करने के लिए, शिम को उस स्क्रिप्ट टैग से पहले जोड़ें जो xlsx.js लोड करता है:```html

root@kitploit:~
स्क्रिप्ट में फ़ाइलों को लोड करने और सहेजने के लिए `IE_LoadFile` और `IE_SaveFile` भी शामिल हैं,
जो Internet Explorer संस्करण 6-9 के लिए हैं।  `xlsx.extendscript.js` स्क्रिप्ट शिम को
Photoshop और अन्य Adobe उत्पादों के लिए उपयुक्त प्रारूप में बंडल करती है।

</details>

### उपयोग

स्प्रेडशीट और डेटा से जुड़े अधिकांश परिदृश्यों को 5 भागों में विभाजित किया जा सकता है:

1) **डेटा प्राप्त करें**:  डेटा कहीं भी संग्रहीत हो सकता है: स्थानीय या दूरस्थ फ़ाइलें,
   डेटाबेस, HTML TABLE, या यहाँ तक कि वेब ब्राउज़र में प्रोग्रामेटिक रूप से उत्पन्न।

2) **डेटा निकालें**:  स्प्रेडशीट फ़ाइलों के लिए, इसमें सेल डेटा पढ़ने के लिए कच्चे बाइट्स को पार्स करना शामिल है।
   सामान्य JS डेटा के लिए, इसमें डेटा को पुनर्गठित करना शामिल है।

3) **डेटा संसाधित करें**:  सारांश आँकड़े उत्पन्न करने से लेकर डेटा रिकॉर्ड साफ़ करने तक,
   यह चरण समस्या का केंद्र है।

4) **डेटा पैकेज करें**:  इसमें नई स्प्रेडशीट बनाना या `JSON.stringify` के साथ सीरियलाइज़ करना
   या XML लिखना या UI टूल्स के लिए डेटा को फ्लैट करना शामिल हो सकता है।

5) **डेटा जारी करें**:  स्प्रेडशीट फ़ाइलें सर्वर पर अपलोड की जा सकती हैं या स्थानीय रूप से
   लिखी जा सकती हैं।  डेटा को HTML TABLE या डेटा ग्रिड में उपयोगकर्ताओं के सामने प्रस्तुत किया जा सकता है।

एक सामान्य समस्या में HTML टेबल में संग्रहीत डेटा से एक मान्य स्प्रेडशीट निर्यात उत्पन्न करना शामिल है।  इस उदाहरण में, पृष्ठ पर मौजूद HTML TABLE को स्क्रैप किया जाएगा, रिपोर्ट की तारीख के साथ सबसे नीचे एक पंक्ति जोड़ी जाएगी, और एक नई फ़ाइल उत्पन्न की जाएगी और स्थानीय रूप से डाउनलोड की जाएगी। `XLSX.writeFile` डेटा को पैकेज करने और स्थानीय डाउनलोड का प्रयास करने का ध्यान रखता है:```js
// Acquire Data (reference to the HTML table)
var table_elt = document.getElementById("my-table-id");

// Extract Data (create a workbook object from the table)
var workbook = XLSX.utils.table_to_book(table_elt);

// Process Data (add a new row)
var ws = workbook.Sheets["Sheet1"];
XLSX.utils.sheet_add_aoa(ws, [["Created "+new Date().toISOString()]], {origin:-1});

// Package and Release Data (`writeFile` tries to write and save an XLSB file)
XLSX.writeFile(workbook, "Report.xlsb");
टूल डाउनलोड करें
  • वर्कबुक-स्तरीय विशेषताएँ
    • परिभाषित नाम
    • वर्कबुक दृश्य
    • विविध वर्कबुक गुण
  • दस्तावेज़ सुविधाएँ
    • सूत्र
    • पंक्ति और स्तंभ गुण
    • संख्या प्रारूप
    • हाइपरलिंक
    • सेल टिप्पणियाँ
    • शीट दृश्यता
    • VBA और मैक्रोज़
  • पार्सिंग विकल्प
    • इनपुट प्रकार
    • फ़ाइल प्रकार का अनुमान लगाना
  • लेखन विकल्प
    • समर्थित आउटपुट प्रारूप
    • आउटपुट प्रकार
  • उपयोगिता फ़ंक्शन
    • ऐरे ऑफ़ ऐरे इनपुट
    • ऐरे ऑफ़ ऑब्जेक्ट इनपुट
    • HTML टेबल इनपुट
    • सूत्र आउटपुट
    • सीमांकक-पृथक आउटपुट
      • UTF-16 यूनिकोड टेक्स्ट
    • HTML आउटपुट
    • JSON
  • फ़ाइल प्रारूप
  • परीक्षण
    • Node
    • ब्राउज़र
    • परीक्षित वातावरण
    • परीक्षण फ़ाइलें
  • योगदान
    • OSX/Linux
    • Windows
    • परीक्षण
  • लाइसेंस
  • संदर्भ
  • यह लाइब्रेरी स्प्रेडशीट फ़ाइलों से उपयोगी डेटा निकालने के लिए (read / readFile) और डेटा से नई स्प्रेडशीट फ़ाइलें बनाने के लिए (write / writeFile) फ़ंक्शन के साथ चरण 2 और 4 को सरल बनाने की कोशिश करती है। अतिरिक्त उपयोगिता फ़ंक्शन जैसे table_to_book HTML तालिकाओं जैसे अन्य सामान्य डेटा स्रोतों के साथ काम करते हैं।

    यह दस्तावेज़ और विभिन्न डेमो प्रोजेक्ट चरण 1 और 5 के लिए कई सामान्य परिदृश्यों और दृष्टिकोणों को कवर करते हैं।

    उपयोगिता फ़ंक्शन चरण 3 में मदद करते हैं।

    "डेटा प्राप्त करना और निकालना" सामान्य डेटा आयात परिदृश्यों के समाधानों का वर्णन करता है।

    "डेटा पैकेज करना और जारी करना" सामान्य डेटा निर्यात परिदृश्यों के समाधानों का वर्णन करता है।

    "डेटा प्रोसेस करना" सामान्य वर्कबुक प्रोसेसिंग और हेरफेर परिदृश्यों के समाधानों का वर्णन करता है।

    "उपयोगिता फ़ंक्शन" JSON Arrays और अन्य सामान्य JS संरचनाओं को वर्कशीट ऑब्जेक्ट में अनुवाद करने के लिए उपयोगिता फ़ंक्शन का विवरण देता है।

    SheetJS का ज़ेन

    डेटा प्रोसेसिंग किसी भी वर्कफ़्लो में फिट होनी चाहिए

    लाइब्रेरी कोई अलग जीवनचक्र लागू नहीं करती। यह किसी भी फ्रेमवर्क का उपयोग करके बनाई गई वेबसाइटों और ऐप्स में अच्छी तरह फिट होती है। सादे JS डेटा ऑब्जेक्ट Web Workers और भविष्य के APIs के साथ अच्छी तरह काम करते हैं।

    JavaScript डेटा प्रोसेसिंग के लिए एक शक्तिशाली भाषा है

    "सामान्य स्प्रेडशीट प्रारूप" एक वर्कबुक के मूल अवधारणाओं का एक सरल ऑब्जेक्ट प्रतिनिधित्व है। लाइब्रेरी में विभिन्न फ़ंक्शन ऑब्जेक्ट के साथ काम करने के लिए निम्न-स्तरीय उपकरण प्रदान करते हैं।

    अनुकूल JS प्रोसेसिंग के लिए, वर्कशीट के हिस्सों को Arrays की एक Array में/से परिवर्तित करने के लिए उपयोगिता फ़ंक्शन हैं। निम्नलिखित उदाहरण शक्तिशाली JS Array विधियों को एक नेटवर्क अनुरोध लाइब्रेरी के साथ जोड़ता है ताकि डेटा डाउनलोड किया जा सके, जो जानकारी हम चाहते हैं उसे चुन सकें और एक वर्कबुक फ़ाइल बना सकें:

    एक JSON एंडपॉइंट से डेटा प्राप्त करें और एक वर्कबुक बनाएँ (दिखाने के लिए क्लिक करें)

    लक्ष्य US राष्ट्रपतियों के नाम और जन्मदिन की एक XLSB वर्कबुक बनाना है।

    डेटा प्राप्त करें

    कच्चा डेटा

    https://theunitedstates.io/congress-legislators/executive.json में वांछित डेटा है। उदाहरण के लिए, जॉन एडम्स:```js { "id": { /* (data omitted) / }, "name": { "first": "John", // <-- first name "last": "Adams" // <-- last name }, "bio": { "birthday": "1735-10-19", // <-- birthday "gender": "M" }, "terms": [ { "type": "viceprez", / (other fields omitted) / }, { "type": "viceprez", / (other fields omitted) / }, { "type": "prez", / (other fields omitted) */ } // <-- look for "prez" ] }

    root@kitploit:~
    _राष्ट्रपतियों के लिए फ़िल्टरिंग_
    
    डेटासेट में Aaron Burr शामिल है, जो एक उपराष्ट्रपति थे जो कभी राष्ट्रपति नहीं बने!
    
    `Array#filter` वांछित पंक्तियों के साथ एक नई सरणी बनाता है।  एक राष्ट्रपति ने
    कम से कम एक कार्यकाल में सेवा की, जिसमें `type` सेट `"prez"` है।  यह जाँचने के लिए कि किसी विशेष पंक्ति में
    कम से कम एक `"prez"` कार्यकाल है, `Array#some` एक और नेटिव JS फ़ंक्शन है।  पूर्ण
    फ़िल्टर इस प्रकार होगा:```js
    const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
    

    डेटा को पंक्तिबद्ध करना

    इस उदाहरण के लिए, नाम पहला नाम और अंतिम नाम का संयोजन होगा (row.name.first + " " + row.name.last) और जन्मदिन उप-फ़ील्ड होगा row.bio.birthday। Array#map का उपयोग करके, डेटासेट को एक ही कॉल में व्यवस्थित (massage) किया जा सकता है:```js const rows = prez.map(row => ({ name: row.name.first + " " + row.name.last, birthday: row.bio.birthday }));

    root@kitploit:~
    परिणाम बिना किसी नेस्टिंग के "सरल" ऑब्जेक्ट्स की एक सरणी है:```js
    [
      { name: "George Washington", birthday: "1732-02-22" },
      { name: "John Adams", birthday: "1735-10-19" },
      // ... one row per President
    ]
    

    डेटा निकालें

    साफ़ किए गए डेटासेट के साथ, XLSX.utils.json_to_sheet एक वर्कशीट उत्पन्न करता है:```js const worksheet = XLSX.utils.json_to_sheet(rows);

    root@kitploit:~
    `XLSX.utils.book_new` एक नई कार्यपुस्तिका बनाता है और `XLSX.utils.book_append_sheet`
    कार्यपुस्तिका में एक वर्कशीट जोड़ता है। नई वर्कशीट को "Dates" कहा जाएगा:```js
    const workbook = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(workbook, worksheet, "Dates");
    

    डेटा प्रोसेस करें

    हेडर ठीक करना

    डिफ़ॉल्ट रूप से, json_to_sheet हेडर पंक्ति के साथ एक वर्कशीट बनाता है। इस मामले में, हेडर JS ऑब्जेक्ट कुंजियों से आते हैं: "name" और "birthday"।

    हेडर सेल A1 और B1 में होते हैं। XLSX.utils.sheet_add_aoa सेल A1 से शुरू होने वाली मौजूदा वर्कशीट में टेक्स्ट मान लिख सकता है:```js XLSX.utils.sheet_add_aoa(worksheet, [["Name", "Birthday"]], { origin: "A1" });

    root@kitploit:~
    _कॉलम की चौड़ाई ठीक करना_
    
    कुछ नाम डिफ़ॉल्ट कॉलम चौड़ाई से लंबे हैं।  कॉलम की चौड़ाई
    [वर्कशीट प्रॉपर्टी `"!cols"` सेट करके](#row-and-column-properties) निर्धारित की जाती है।
    
    निम्न पंक्ति कॉलम A की चौड़ाई लगभग 10 वर्णों पर सेट करती है:```js
    worksheet["!cols"] = [ { wch: 10 } ]; // set column A width to 10 characters
    

    rows पर एक Array#reduce कॉल अधिकतम चौड़ाई की गणना कर सकती है:```js const max_width = rows.reduce((w, r) => Math.max(w, r.name.length), 10); worksheet["!cols"] = [ { wch: max_width } ];

    root@kitploit:~
    नोट: यदि प्रारंभिक बिंदु कोई फ़ाइल या HTML तालिका थी, तो `XLSX.utils.sheet_to_json`
    JS ऑब्जेक्ट्स की एक सरणी उत्पन्न करेगा।
    
    **पैकेज और रिलीज़ डेटा**
    
    `XLSX.writeFile` एक स्प्रेडशीट फ़ाइल बनाता है और उसे सिस्टम में लिखने का प्रयास करता है।
    ब्राउज़र में, यह उपयोगकर्ता को फ़ाइल डाउनलोड करने के लिए संकेत देने का प्रयास करेगा। NodeJS में,
    यह स्थानीय निर्देशिका में लिखेगा।```js
    XLSX.writeFile(workbook, "Presidents.xlsx");
    

    पूर्ण उदाहरण```js // Uncomment the next line for use in NodeJS: // const XLSX = require("xlsx"), axios = require("axios");

    (async() => { /* fetch JSON data and parse */ const url = "https://theunitedstates.io/congress-legislators/executive.json"; const raw_data = (await axios(url, {responseType: "json"})).data;

    /* filter for the Presidents */ const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));

    /* flatten objects */ const rows = prez.map(row => ({ name: row.name.first + " " + row.name.last, birthday: row.bio.birthday }));

    /* generate worksheet and workbook */ const worksheet = XLSX.utils.json_to_sheet(rows); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, "Dates");

    /* fix headers */ XLSX.utils.sheet_add_aoa(worksheet, [["Name", "Birthday"]], { origin: "A1" });

    /* calculate column width */ const max_width = rows.reduce((w, r) => Math.max(w, r.name.length), 10); worksheet["!cols"] = [ { wch: max_width } ];

    /* create an XLSX file and try to save to Presidents.xlsx */ XLSX.writeFile(workbook, "Presidents.xlsx"); })();

    root@kitploit:~
    वेब ब्राउज़र में उपयोग के लिए, यह मानते हुए कि स्निपेट `snippet.js` में सहेजा गया है,
    `axios` और `xlsx` स्टैंडअलोन बिल्ड्स को शामिल करने के लिए स्क्रिप्ट टैग का उपयोग किया जाना चाहिए:```html
    <script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="snippet.js"></script>
    

    फ़ाइल प्रारूप कार्यान्वयन विवरण हैं

    पार्सर सामान्य स्प्रेडशीट फ़ाइल प्रारूपों की एक विस्तृत श्रृंखला को कवर करता है ताकि यह सुनिश्चित हो सके कि "HTML-saved-as-XLS" फ़ाइलें वास्तविक XLS या XLSX फ़ाइलों की तरह काम करें।

    राइटर डेटा इकोसिस्टम के साथ व्यापक संगतता के लिए कई सामान्य आउटपुट प्रारूपों का समर्थन करता है।

    जहाँ तक संभव हो, डेटा प्रोसेसिंग कोड को शामिल विशिष्ट फ़ाइल प्रारूपों के बारे में चिंता नहीं करनी चाहिए।

    JS पारिस्थितिकी तंत्र डेमो

    demos निर्देशिका निम्नलिखित के लिए नमूना प्रोजेक्ट शामिल करती है:

    फ्रेमवर्क और एपीआई

    • angularjs
    • angular and ionic
    • knockout
    • meteor
    • react and react-native
    • vue 2.x and weex
    • XMLHttpRequest and fetch
    • nodejs server
    • databases and key/value stores
    • typed arrays and math

    बंडलर्स और टूलिंग

    • browserify
    • fusebox
    • parcel
    • requirejs
    • rollup
    • systemjs
    • typescript
    • webpack 2.x

    प्लेटफ़ॉर्म और एकीकरण

    • deno
    • electron application
    • nw.js application
    • Chrome / Chromium extensions
    • Download a Google Sheet locally
    • Adobe ExtendScript
    • Headless Browsers
    • canvas-datagrid
    • x-spreadsheet
    • react-data-grid
    • vue3-table-light
    • Swift JSC and other engines
    • "serverless" functions
    • internet explorer

    अन्य उदाहरण शोकेस में शामिल हैं।

    https://sheetjs.com/demos/modify.html फ़ाइलों को पढ़ने, संशोधित करने और लिखने का एक संपूर्ण उदाहरण दिखाता है।

    https://github.com/SheetJS/sheetjs/blob/HEAD/bin/xlsx.njs नोड इंस्टॉलेशन के साथ शामिल कमांड-लाइन टूल है, जो स्प्रेडशीट फ़ाइलों को पढ़ता है और सामग्री को विभिन्न प्रारूपों में निर्यात करता है।

    डेटा प्राप्त करना और निकालना

    वर्कबुक्स को पार्स करना

    API

    स्प्रेडशीट बाइट्स से डेटा निकालें```js var workbook = XLSX.read(data, opts);

    root@kitploit:~
    `read` विधि JS स्ट्रिंग, "binary string", NodeJS बफर या टाइप किए गए ऐरे (`Uint8Array` या `ArrayBuffer`) में संग्रहीत स्प्रेडशीट बाइट्स से डेटा निकाल सकती है।
    
    
    _स्थानीय फ़ाइल से स्प्रेडशीट बाइट्स पढ़ें और डेटा निकालें_```js
    var workbook = XLSX.readFile(filename, opts);
    

    The readFile विधि दिए गए पथ पर स्प्रेडशीट फ़ाइल को पढ़ने का प्रयास करती है। ब्राउज़र सामान्यतः इस तरह से फ़ाइलें पढ़ने की अनुमति नहीं देते (इसे सुरक्षा जोखिम माना जाता है), और इस तरह से फ़ाइलें पढ़ने के प्रयासों में त्रुटि उत्पन्न होगी।

    दूसरा opts तर्क वैकल्पिक है। "पार्सिंग विकल्प" समर्थित गुणों और व्यवहारों को कवर करता है।

    उदाहरण

    यहाँ कुछ सामान्य परिदृश्य दिए गए हैं (प्रत्येक उपशीर्षक पर क्लिक करके कोड देखें):

    NodeJS सर्वर में स्थानीय फ़ाइल (देखने के लिए क्लिक करें)

    readFile आंतरिक रूप से fs.readFileSync का उपयोग करता है:```js var XLSX = require("xlsx");

    var workbook = XLSX.readFile("test.xlsx");

    root@kitploit:~
    For Node ESM के लिए, `readFile` सहायक सक्षम नहीं है। इसके बजाय, `fs.readFileSync` का उपयोग फ़ाइल डेटा को `Buffer` के रूप में पढ़ने के लिए किया जाना चाहिए, ताकि इसे `XLSX.read` के साथ उपयोग किया जा सके:```js
    import { readFileSync } from "fs";
    import { read } from "xlsx/xlsx.mjs";
    
    const buf = readFileSync("test.xlsx");
    /* buf is a Buffer */
    const workbook = read(buf);
    
    डेनो अनुप्रयोग में स्थानीय फ़ाइल (देखने के लिए क्लिक करें)

    readFile आंतरिक रूप से Deno.readFileSync का उपयोग करता है:```js // @deno-types="https://deno.land/x/sheetjs/types/index.d.ts" import * as XLSX from 'https://deno.land/x/sheetjs/xlsx.mjs'

    const workbook = XLSX.readFile("test.xlsx");

    root@kitploit:~
    Applications reading files must be invoked with the `--allow-read` flag.  The
    [`deno` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/deno/) में और उदाहरण हैं
    
    </details>
    
    <details>
      <summary><b>वेब पेज में उपयोगकर्ता द्वारा सबमिट की गई फ़ाइल ("Drag-and-Drop")</b> (देखने के लिए क्लिक करें)</summary>
    
    Chrome 76+ को लक्षित करने वाली आधुनिक वेबसाइटों के लिए, `File#arrayBuffer` अनुशंसित है:```js
    // XLSX is a global from the standalone script
    
    async function handleDropAsync(e) {
      e.stopPropagation(); e.preventDefault();
      const f = e.dataTransfer.files[0];
      /* f is a File */
      const data = await f.arrayBuffer();
      /* data is an ArrayBuffer */
      const workbook = XLSX.read(data);
    
      /* DO SOMETHING WITH workbook HERE */
    }
    drop_dom_element.addEventListener("drop", handleDropAsync, false);
    

    अधिकतम अनुकूलता के लिए, FileReader API का उपयोग किया जाना चाहिए:```js function handleDrop(e) { e.stopPropagation(); e.preventDefault(); var f = e.dataTransfer.files[0]; /* f is a File / var reader = new FileReader(); reader.onload = function(e) { var data = e.target.result; / reader.readAsArrayBuffer(file) -> data will be an ArrayBuffer */ var workbook = XLSX.read(data);

    root@kitploit:~
    /* DO SOMETHING WITH workbook HERE */
    

    }; reader.readAsArrayBuffer(f); } drop_dom_element.addEventListener("drop", handleDrop, false);

    root@kitploit:~
    <https://oss.sheetjs.com/sheetjs/> FileReader तकनीक को प्रदर्शित करता है।
    
    </details>
    
    <details>
      <summary><b>HTML INPUT तत्व के साथ उपयोगकर्ता द्वारा सबमिट की गई फ़ाइल</b> (दिखाने के लिए क्लिक करें)</summary>
    
    एक HTML INPUT तत्व से शुरू करें जिसमें `type="file"` है:```html
    <input type="file" id="input_dom_element">
    

    आधुनिक वेबसाइटों के लिए जो Chrome 76+ को लक्षित करती हैं, Blob#arrayBuffer अनुशंसित है:```js // XLSX is a global from the standalone script

    async function handleFileAsync(e) { const file = e.target.files[0]; const data = await file.arrayBuffer(); /* data is an ArrayBuffer */ const workbook = XLSX.read(data);

    /* DO SOMETHING WITH workbook HERE */ } input_dom_element.addEventListener("change", handleFileAsync, false);

    root@kitploit:~
    व्यापक समर्थन (IE10+ सहित) के लिए, `FileReader` दृष्टिकोण अनुशंसित है:```js
    function handleFile(e) {
      var file = e.target.files[0];
      var reader = new FileReader();
      reader.onload = function(e) {
        var data = e.target.result;
        /* reader.readAsArrayBuffer(file) -> data will be an ArrayBuffer */
        var workbook = XLSX.read(e.target.result);
    
        /* DO SOMETHING WITH workbook HERE */
      };
      reader.readAsArrayBuffer(file);
    }
    input_dom_element.addEventListener("change", handleFile, false);
    

    The oldie डेमो एक IE-संगत फ़ॉलबैक परिदृश्य दिखाता है।

    वेब ब्राउज़र में फ़ाइल लाना ("Ajax") (देखने के लिए क्लिक करें)

    Chrome 42+ को लक्षित करने वाली आधुनिक वेबसाइटों के लिए, fetch अनुशंसित है:```js // XLSX is a global from the standalone script

    (async() => { const url = "http://oss.sheetjs.com/test_files/formula_stress_test.xlsx"; const data = await (await fetch(url)).arrayBuffer(); /* data is an ArrayBuffer */ const workbook = XLSX.read(data);

    /* DO SOMETHING WITH workbook HERE */ })();

    root@kitploit:~
    व्यापक समर्थन के लिए, `XMLHttpRequest` दृष्टिकोण अनुशंसित है:```js
    var url = "http://oss.sheetjs.com/test_files/formula_stress_test.xlsx";
    
    /* set up async GET request */
    var req = new XMLHttpRequest();
    req.open("GET", url, true);
    req.responseType = "arraybuffer";
    
    req.onload = function(e) {
      var workbook = XLSX.read(req.response);
    
      /* DO SOMETHING WITH workbook HERE */
    };
    
    req.send();
    

    xhr डेमो में एक लंबी चर्चा और अधिक उदाहरण शामिल हैं।

    http://oss.sheetjs.com/sheetjs/ajax.html IE6+ के लिए फ़ॉलबैक दृष्टिकोण दिखाता है।

    PhotoShop या InDesign प्लगइन में स्थानीय फ़ाइल (देखने के लिए क्लिक करें)

    readFile Photoshop और अन्य ExtendScript लक्ष्यों में File लॉजिक को लपेटता है। निर्दिष्ट पथ एक पूर्ण पथ होना चाहिए:```js #include "xlsx.extendscript.js"

    /* Read test.xlsx from the Documents folder */ var workbook = XLSX.readFile(Folder.myDocuments + "/test.xlsx");

    root@kitploit:~
    [`extendscript` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/extendscript/) में एक अधिक जटिल उदाहरण शामिल है।
    
    </details>
    
    <details>
      <summary><b>Electron ऐप में स्थानीय फ़ाइल</b> (दिखाने के लिए क्लिक करें)</summary>
    
    `readFile` का उपयोग रेंडरर प्रक्रिया में किया जा सकता है:```js
    /* From the renderer process */
    var XLSX = require("xlsx");
    
    var workbook = XLSX.readFile(path);
    

    Electron APIs समय के साथ बदल गए हैं। यह electron demo एक संपूर्ण उदाहरण दिखाता है और आवश्यक संस्करण-विशिष्ट सेटिंग्स का विवरण देता है।

    React Native के साथ मोबाइल ऐप में स्थानीय फ़ाइल (दिखाने के लिए क्लिक करें)

    यह react demo एक नमूना React Native ऐप शामिल करता है।

    चूँकि React Native फ़ाइल सिस्टम से फ़ाइलें पढ़ने का कोई तरीका प्रदान नहीं करता है, एक तृतीय-पक्ष लाइब्रेरी का उपयोग किया जाना चाहिए। निम्नलिखित लाइब्रेरियों का परीक्षण किया गया है:

    • react-native-file-access

    base64 एन्कोडिंग base64 प्रकार के साथ संगत स्ट्रिंग्स लौटाती है:```js import XLSX from "xlsx"; import { FileSystem } from "react-native-file-access";

    const b64 = await FileSystem.readFile(path, "base64"); /* b64 is a base64 string */ const workbook = XLSX.read(b64, {type: "base64"});

    root@kitploit:~
    - [`react-native-fs`](https://npm.im/react-native-fs)
    
    `ascii` एन्कोडिंग बाइनरी स्ट्रिंग्स लौटाता है जो `binary` प्रकार के साथ संगत हैं:```js
    import XLSX from "xlsx";
    import { readFile } from "react-native-fs";
    
    const bstr = await readFile(path, "ascii");
    /* bstr is a binary string */
    const workbook = XLSX.read(bstr, {type: "binary"});
    
    NodeJS सर्वर फ़ाइल अपलोड (दिखाने के लिए क्लिक करें)

    read एक NodeJS बफ़र स्वीकार कर सकता है। readFile एक HTTP POST अनुरोध बॉडी पार्सर जैसे formidable द्वारा उत्पन्न फ़ाइलें पढ़ सकता है:```js const XLSX = require("xlsx"); const http = require("http"); const formidable = require("formidable");

    const server = http.createServer((req, res) => { const form = new formidable.IncomingForm(); form.parse(req, (err, fields, files) => { /* grab the first file */ const f = Object.entries(files)[0][1]; const path = f.filepath; const workbook = XLSX.readFile(path);

    root@kitploit:~
    /* DO SOMETHING WITH workbook HERE */
    

    }); }).listen(process.env.PORT || 7262);

    root@kitploit:~
    [`server` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/server) में अधिक उन्नत उदाहरण हैं।
    
    </details>
    
    <details>
      <summary><b>NodeJS प्रोसेस में फ़ाइलें डाउनलोड करें</b> (देखने के लिए क्लिक करें)</summary>
    
    Node 17.5 और 18.0 में fetch के लिए मूल समर्थन है:```js
    const XLSX = require("xlsx");
    
    const data = await (await fetch(url)).arrayBuffer();
    /* data is an ArrayBuffer */
    const workbook = XLSX.read(data);
    

    व्यापक संगतता के लिए, थर्ड-पार्टी मॉड्यूल की अनुशंसा की जाती है।

    request को Buffers प्राप्त करने के लिए null एन्कोडिंग की आवश्यकता होती है:```js var XLSX = require("xlsx"); var request = require("request");

    request({url: url, encoding: null}, function(err, resp, body) { var workbook = XLSX.read(body);

    /* DO SOMETHING WITH workbook HERE */ });

    root@kitploit:~
    [`axios`](https://npm.im/axios) ब्राउज़र और NodeJS में इसी तरह काम करता है:```js
    const XLSX = require("xlsx");
    const axios = require("axios");
    
    (async() => {
      const res = await axios.get(url, {responseType: "arraybuffer"});
      /* res.data is a Buffer */
      const workbook = XLSX.read(res.data);
    
      /* DO SOMETHING WITH workbook HERE */
    })();
    
    इलेक्ट्रॉन ऐप में फ़ाइलें डाउनलोड करें (दिखाने के लिए क्लिक करें)

    मुख्य प्रक्रिया में net मॉड्यूल बाहरी संसाधनों के लिए HTTP/HTTPS अनुरोध कर सकता है। प्रतिक्रियाओं को Buffer.concat का उपयोग करके मैन्युअल रूप से संयोजित किया जाना चाहिए:```js const XLSX = require("xlsx"); const { net } = require("electron");

    const req = net.request(url); req.on("response", (res) => { const bufs = []; // this array will collect all of the buffers res.on("data", (chunk) => { bufs.push(chunk); }); res.on("end", () => { const workbook = XLSX.read(Buffer.concat(bufs));

    root@kitploit:~
    /* DO SOMETHING WITH workbook HERE */
    

    }); }); req.end();

    root@kitploit:~
    </details>
    
    <details>
      <summary><b>NodeJS में Readable Streams</b> (देखने के लिए क्लिक करें)</summary>
    
    Readable Streams के साथ काम करते समय, सबसे आसान तरीका है स्ट्रीम को बफ़र करना
    और अंत में पूरी चीज़ को प्रोसेस करना:```js
    var fs = require("fs");
    var XLSX = require("xlsx");
    
    function process_RS(stream, cb) {
      var buffers = [];
      stream.on("data", function(data) { buffers.push(data); });
      stream.on("end", function() {
        var buffer = Buffer.concat(buffers);
        var workbook = XLSX.read(buffer, {type:"buffer"});
    
        /* DO SOMETHING WITH workbook IN THE CALLBACK */
        cb(workbook);
      });
    }
    
    ब्राउज़र में ReadableStream (देखने के लिए क्लिक करें)

    ReadableStream के साथ काम करते समय, सबसे आसान तरीका स्ट्रीम को बफ़र करना और अंत में पूरी चीज़ को प्रोसेस करना है:```js // XLSX is a global from the standalone script

    async function process_RS(stream) { /* collect data */ const buffers = []; const reader = stream.getReader(); for(;;) { const res = await reader.read(); if(res.value) buffers.push(res.value); if(res.done) break; }

    /* concat */ const out = new Uint8Array(buffers.reduce((acc, v) => acc + v.length, 0));

    let off = 0; for(const u8 of arr) { out.set(u8, off); off += u8.length; }

    return out; }

    const data = await process_RS(stream); /* data is Uint8Array */ const workbook = XLSX.read(data);

    root@kitploit:~
    </details>
    
    अधिक विस्तृत उदाहरण [शामिल डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/) में दिए गए हैं।
    
    ### JSON और JS डेटा की प्रोसेसिंग
    
    JSON और JS डेटा आमतौर पर एकल वर्कशीट का प्रतिनिधित्व करते हैं।  यह अनुभाग कुछ उपयोगिता फ़ंक्शनों का  
    उपयोग करके वर्कबुक उत्पन्न करेगा।
    
    _एक नई Workbook बनाएँ_```js
    var workbook = XLSX.utils.book_new();
    

    The book_new यूटिलिटी फ़ंक्शन बिना किसी कार्यपत्रक के एक खाली कार्यपुस्तिका बनाता है।

    स्प्रेडशीट सॉफ़्टवेयर को आम तौर पर कम से कम एक कार्यपत्रक की आवश्यकता होती है और वे इस आवश्यकता को उपयोगकर्ता इंटरफ़ेस में लागू करते हैं। यह लाइब्रेरी आवश्यकता को लेखन समय पर लागू करती है, यदि कोई खाली कार्यपुस्तिका लेखन फ़ंक्शन को दी जाती है तो त्रुटियाँ फेंकती है।

    API

    JS मानों की सरणियों की एक सरणी से एक कार्यपत्रक बनाएं```js var worksheet = XLSX.utils.aoa_to_sheet(aoa, opts);

    root@kitploit:~
    `aoa_to_sheet` उपयोगिता फ़ंक्शन "ऐरे ऑफ ऐरे" को row-major
    क्रम में ट्रैवर्स करता है, जिससे एक worksheet ऑब्जेक्ट उत्पन्न होता है।  निम्नलिखित स्निपेट एक शीट उत्पन्न करता है
    जिसमें सेल `A1` स्ट्रिंग `A1` पर सेट है, सेल `B1` `B1` पर सेट है, आदि:```js
    var worksheet = XLSX.utils.aoa_to_sheet([
      ["A1", "B1", "C1"],
      ["A2", "B2", "C2"],
      ["A3", "B3", "C3"]
    ]);
    

    "ऐरे ऑफ ऐरे इनपुट" फ़ंक्शन और वैकल्पिक opts तर्क का अधिक विस्तार से वर्णन करता है।

    JS ऑब्जेक्ट्स की एक सरणी से वर्कशीट बनाएं```js var worksheet = XLSX.utils.json_to_sheet(jsa, opts);

    root@kitploit:~
    `json_to_sheet` उपयोगिता फ़ंक्शन JS ऑब्जेक्ट्स की एक सरणी को क्रम में ट्रैवर्स करता है,
    एक worksheet ऑब्जेक्ट उत्पन्न करता है।  डिफ़ॉल्ट रूप से, यह एक हेडर पंक्ति और
    सरणी में प्रत्येक ऑब्जेक्ट के लिए एक पंक्ति उत्पन्न करेगा।  वैकल्पिक `opts` आर्गुमेंट में
    कॉलम क्रम और हेडर आउटपुट को नियंत्रित करने की सेटिंग्स होती हैं।
    
    ["ऑब्जेक्ट्स की सरणी इनपुट"](#array-of-arrays-input) फ़ंक्शन और
    वैकल्पिक `opts` आर्गुमेंट का अधिक विवरण देता है।
    
    **उदाहरण**
    
    ["SheetJS का ज़ेन"](#the-zen-of-sheetjs) में "JSON एंडपॉइंट से
    डेटा प्राप्त करें और एक Workbook बनाएं" नामक एक विस्तृत उदाहरण शामिल है।
    
    
    [`x-spreadsheet`](https://github.com/myliang/x-spreadsheet) एक इंटरैक्टिव
    डेटा ग्रिड है जो वेब ब्राउज़र में संरचित डेटा को पूर्वावलोकन और संशोधित करने के लिए है।
    यह [`xspreadsheet` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/xspreadsheet) एक नमूना स्क्रिप्ट शामिल करता है जिसमें
    `xtos` फ़ंक्शन है जो x-spreadsheet डेटा ऑब्जेक्ट से workbook में परिवर्तित करता है।
    <https://oss.sheetjs.com/sheetjs/x-spreadsheet> एक लाइव डेमो है।
    
    <details>
      <summary><b>डेटाबेस क्वेरी (SQL या no-SQL) से रिकॉर्ड्स</b> (दिखाने के लिए क्लिक करें)</summary>
    
    [`database` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/database/) में डेटाबेस और
    क्वेरी परिणामों के साथ काम करने के उदाहरण शामिल हैं।
    
    </details>
    
    
    <details>
      <summary><b>TensorFlow.js के साथ संख्यात्मक गणनाएँ</b> (दिखाने के लिए क्लिक करें)</summary>
    
    [`@tensorflow/tfjs`](https://github.com/weareu/xlsx/blob/HEAD/@tensorflow/tfjs) और अन्य लाइब्रेरीज़ डेटा को सरल
    सरणियों में अपेक्षा करती हैं, जो worksheets के लिए उपयुक्त हैं जहाँ प्रत्येक कॉलम एक डेटा वेक्टर है।  यह
    उस तरीके का ट्रांसपोज़ है जिसमें अधिकांश लोग स्प्रेडशीट का उपयोग करते हैं, जहाँ प्रत्येक पंक्ति एक वेक्टर होती है।
    
    `tfjs` से डेटा प्राप्त करते समय, लौटाए गए डेटा बिंदु एक typed
    array में संग्रहीत होते हैं।  लूप्स के साथ सरणियों की एक सरणी बनाई जा सकती है। `Array#unshift`
    रूपांतरण से पहले एक शीर्षक पंक्ति जोड़ सकता है:```js
    const XLSX = require("xlsx");
    const tf = require('@tensorflow/tfjs');
    
    /* suppose xs and ys are vectors (1D tensors) -> tfarr will be a typed array */
    const tfdata = tf.stack([xs, ys]).transpose();
    const shape = tfdata.shape;
    const tfarr = tfdata.dataSync();
    
    /* construct the array of arrays */
    const aoa = [];
    for(let j = 0; j < shape[0]; ++j) {
      aoa[j] = [];
      for(let i = 0; i < shape[1]; ++i) aoa[j][i] = tfarr[j * shape[1] + i];
    }
    /* add headers to the top */
    aoa.unshift(["x", "y"]);
    
    /* generate worksheet */
    const worksheet = XLSX.utils.aoa_to_sheet(aoa);
    

    यह array डेमो एक पूर्ण उदाहरण दिखाता है।

    HTML तालिकाओं का प्रसंस्करण

    API

    पृष्ठ में मौजूद HTML TABLE को स्क्रैप करके एक वर्कशीट बनाएँ```js var worksheet = XLSX.utils.table_to_sheet(dom_element, opts);

    root@kitploit:~
    `table_to_sheet` उपयोगिता फ़ंक्शन एक DOM TABLE तत्व लेता है और पंक्तियों के माध्यम से पुनरावृत्त करता है
    ताकि एक वर्कशीट उत्पन्न हो सके।  `opts` तर्क वैकल्पिक है।
    ["HTML टेबल इनपुट"](#html-table-input) फ़ंक्शन का अधिक विस्तार से वर्णन करता है।
    
    
    
    _पृष्ठ में एक HTML TABLE को स्क्रैप करके एक वर्कबुक बनाएँ_```js
    var workbook = XLSX.utils.table_to_book(dom_element, opts);
    

    The table_to_book utility function follows the same logic as table_to_sheet. After generating a worksheet, it creates a blank workbook and appends the spreadsheet.

    The options argument supports the same options as table_to_sheet, with the addition of a sheet property to control the worksheet name. If the property is missing or no options are specified, the default name Sheet1 is used.

    उदाहरण

    यहाँ कुछ सामान्य परिदृश्य दिए गए हैं (कोड देखने के लिए प्रत्येक उपशीर्षक पर क्लिक करें):

    वेबपेज में HTML TABLE एलिमेंट (देखने के लिए क्लिक करें)```html
    SheetJS
    1234567
    root@kitploit:~
    वेब पेज पर कई तालिकाओं को अलग-अलग वर्कशीट में परिवर्तित किया जा सकता है:```js
    /* create new workbook */
    var workbook = XLSX.utils.book_new();
    
    /* convert table "table1" to worksheet named "Sheet1" */
    var sheet1 = XLSX.utils.table_to_sheet(document.getElementById("table1"));
    XLSX.utils.book_append_sheet(workbook, sheet1, "Sheet1");
    
    /* convert table "table2" to worksheet named "Sheet2" */
    var sheet2 = XLSX.utils.table_to_sheet(document.getElementById("table2"));
    XLSX.utils.book_append_sheet(workbook, sheet2, "Sheet2");
    
    /* workbook now has 2 worksheets */
    

    वैकल्पिक रूप से, HTML कोड को निकाला और पार्स किया जा सकता है:```js var htmlstr = document.getElementById("tableau").outerHTML; var workbook = XLSX.read(htmlstr, {type:"string"});

    root@kitploit:~
    यह [`chrome` demo](https://github.com/weareu/xlsx/blob/HEAD/demos/chrome/) एक पूर्ण उदाहरण दिखाता है और आवश्यक अनुमतियों तथा अन्य सेटिंग्स का विवरण देता है।
    
    एक एक्सटेंशन में, वर्कबुक को कंटेंट स्क्रिप्ट में उत्पन्न करने और ऑब्जेक्ट को वापस एक्सटेंशन में भेजने की अनुशंसा की जाती है:```js
    /* in the worker script */
    chrome.runtime.onMessage.addListener(function(msg, sender, cb) {
      /* pass a message like { sheetjs: true } from the extension to scrape */
      if(!msg || !msg.sheetjs) return;
      /* create a new workbook */
      var workbook = XLSX.utils.book_new();
      /* loop through each table element */
      var tables = document.getElementsByTagName("table")
      for(var i = 0; i < tables.length; ++i) {
        var worksheet = XLSX.utils.table_to_sheet(tables[i]);
        XLSX.utils.book_append_sheet(workbook, worksheet, "Table" + i);
      }
      /* pass back to the extension */
      return cb(workbook);
    });
    
    हेडलेस क्रोम के साथ सर्वर-साइड HTML तालिकाएँ (देखने के लिए क्लिक करें)

    headless डेमो में HTML फ़ाइलों को XLSB कार्यपुस्तिकाओं में बदलने के लिए एक संपूर्ण डेमो शामिल है। मुख्य विचार पृष्ठ में स्क्रिप्ट जोड़ना, पृष्ठ संदर्भ में तालिका को पार्स करना, एक base64 कार्यपुस्तिका उत्पन्न करना और आगे की प्रक्रिया के लिए उसे वापस भेजना है:```js const XLSX = require("xlsx"); const { readFileSync } = require("fs"), puppeteer = require("puppeteer");

    const url = https://sheetjs.com/demos/table;

    /* get the standalone build source (node_modules/xlsx/dist/xlsx.full.min.js) */ const lib = readFileSync(require.resolve("xlsx/dist/xlsx.full.min.js"), "utf8");

    (async() => { /* start browser and go to web page */ const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(url, {waitUntil: "networkidle2"});

    /* inject library */ await page.addScriptTag({content: lib});

    /* this function s5s will be called by the script below, receiving the Base64-encoded file */ await page.exposeFunction("s5s", async(b64) => { const workbook = XLSX.read(b64, {type: "base64" });

    root@kitploit:~
    /* DO SOMETHING WITH workbook HERE */
    

    });

    /* generate XLSB file in webpage context and send back result / await page.addScriptTag({content: ` / call table_to_book on first table */ var workbook = XLSX.utils.table_to_book(document.querySelector("TABLE"));

    root@kitploit:~
    /* generate XLSX file */
    var b64 = XLSX.write(workbook, {type: "base64", bookType: "xlsb"});
    
    /* call "s5s" hook exposed from the node process */
    window.s5s(b64);
    

    `});

    /* cleanup */ await browser.close(); })();

    root@kitploit:~
    </details>
    
    <details>
      <summary><b>हेडलेस WebKit के साथ सर्वर-साइड HTML तालिकाएँ</b> (दिखाने के लिए क्लिक करें)</summary>
    
    The [`headless` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/headless/) में HTML फ़ाइलों को XLSB वर्कबुक में बदलने
    के लिए [PhantomJS](https://phantomjs.org/) का उपयोग करके एक संपूर्ण डेमो शामिल है। मुख्य विचार
    पृष्ठ पर स्क्रिप्ट जोड़ना, पृष्ठ संदर्भ में तालिका को पार्स करना, एक `binary` वर्कबुक
    उत्पन्न करना और आगे की प्रक्रिया के लिए उसे वापस भेजना है:```js
    var XLSX = require('xlsx');
    var page = require('webpage').create();
    
    /* this code will be run in the page */
    var code = [ "function(){",
      /* call table_to_book on first table */
      "var wb = XLSX.utils.table_to_book(document.body.getElementsByTagName('table')[0]);",
    
      /* generate XLSB file and return binary string */
      "return XLSX.write(wb, {type: 'binary', bookType: 'xlsb'});",
    "}" ].join("");
    
    page.open('https://sheetjs.com/demos/table', function() {
      /* Load the browser script from the UNPKG CDN */
      page.includeJs("https://unpkg.com/xlsx/dist/xlsx.full.min.js", function() {
        /* The code will return an XLSB file encoded as binary string */
        var bin = page.evaluateJavaScript(code);
    
        var workbook = XLSX.read(bin, {type: "binary"});
        /* DO SOMETHING WITH workbook HERE */
    
        phantom.exit();
      });
    });
    
    बिना ब्राउज़र के NodeJS HTML टेबल्स (दिखाने के लिए क्लिक करें)

    NodeJS में DOM कार्यान्वयन शामिल नहीं है और Puppeteer को एक भारी Chromium बिल्ड की आवश्यकता होती है। jsdom एक हल्का विकल्प है:```js const XLSX = require("xlsx"); const { readFileSync } = require("fs"); const { JSDOM } = require("jsdom");

    /* obtain HTML string. This example reads from test.html / const html_str = fs.readFileSync("test.html", "utf8"); / get first TABLE element / const doc = new JSDOM(html_str).window.document.querySelector("table"); / generate workbook */ const workbook = XLSX.utils.table_to_book(doc);

    root@kitploit:~
    </details>
    
    ## डेटा प्रोसेसिंग
    
    ["Common Spreadsheet Format"](#common-spreadsheet-format) कार्यपुस्तिका की मूल अवधारणाओं का एक सरल ऑब्जेक्ट प्रतिनिधित्व है।
    उपयोगिता फ़ंक्शन इस ऑब्जेक्ट प्रतिनिधित्व के साथ काम करते हैं
    और सामान्य उपयोग के मामलों को संभालने के लिए अभिप्रेत हैं।
    
    ### कार्यपुस्तिका संरचना को संशोधित करना
    
    **API**
    
    _किसी कार्यपुस्तिका में एक वर्कशीट जोड़ना_```js
    XLSX.utils.book_append_sheet(workbook, worksheet, sheet_name);
    

    book_append_sheet उपयोगिता फ़ंक्शन एक वर्कशीट को वर्कबुक में जोड़ता है। तीसरा तर्क वांछित वर्कशीट नाम निर्दिष्ट करता है। फ़ंक्शन को कई बार कॉल करके एक वर्कबुक में कई वर्कशीट जोड़ी जा सकती हैं। यदि वर्कशीट नाम पहले से वर्कबुक में उपयोग हो चुका है, तो यह एक त्रुटि उत्पन्न करेगा।

    वर्कबुक में एक वर्कशीट जोड़ें और एक अद्वितीय नाम खोजें```js var new_name = XLSX.utils.book_append_sheet(workbook, worksheet, name, true);

    root@kitploit:~
    यदि चौथा तर्क `true` है, तो फ़ंक्शन निर्दिष्ट  
    वर्कशीट नाम से प्रारंभ होगा।  यदि शीट नाम वर्कबुक में मौजूद है, तो एक नया वर्कशीट नाम  
    नाम स्टेम ढूंढकर और काउंटर बढ़ाकर चुना जाएगा:```js
    XLSX.utils.book_append_sheet(workbook, sheetA, "Sheet2", true); // Sheet2
    XLSX.utils.book_append_sheet(workbook, sheetB, "Sheet2", true); // Sheet3
    XLSX.utils.book_append_sheet(workbook, sheetC, "Sheet2", true); // Sheet4
    XLSX.utils.book_append_sheet(workbook, sheetD, "Sheet2", true); // Sheet5
    

    वर्कशीट नामों को टैब क्रम में सूचीबद्ध करें```js var wsnames = workbook.SheetNames;

    root@kitploit:~
    workbook ऑब्जेक्ट की `SheetNames` प्रॉपर्टी, worksheet नामों की एक सूची है, जो
    "टैब क्रम" में होती है।  API फ़ंक्शन इस array को देखेंगे।
    
    _किसी Worksheet को उसी स्थान पर बदलें_```js
    workbook.Sheets[sheet_name] = new_worksheet;
    

    Sheets प्रॉपर्टी, वर्कबुक ऑब्जेक्ट का एक ऑब्जेक्ट है जिसकी कुंजियाँ नाम होते हैं और जिसके मान वर्कशीट ऑब्जेक्ट होते हैं। Sheets ऑब्जेक्ट की किसी प्रॉपर्टी को पुनः असाइन करके, वर्कशीट ऑब्जेक्ट को बदला जा सकता है, बिना बाकी वर्कशीट संरचना को बाधित किए।

    उदाहरण

    किसी वर्कबुक में नई वर्कशीट जोड़ें (क्लिक करके देखें)

    यह उदाहरण XLSX.utils.aoa_to_sheet का उपयोग करता है।```js var ws_name = "SheetJS";

    /* Create worksheet */ var ws_data = [ [ "S", "h", "e", "e", "t", "J", "S" ], [ 1 , 2 , 3 , 4 , 5 ] ]; var ws = XLSX.utils.aoa_to_sheet(ws_data);

    /* Add the worksheet to the workbook */ XLSX.utils.book_append_sheet(wb, ws, ws_name);

    root@kitploit:~
    </details>
    
    ### सेल मान संशोधित करना
    
    **API**
    
    _किसी वर्कशीट में एक सेल मान संशोधित करें_```js
    XLSX.utils.sheet_add_aoa(worksheet, [[new_value]], { origin: address });
    

    वर्कशीट में कई सेल मान संशोधित करें```js XLSX.utils.sheet_add_aoa(worksheet, aoa, opts);

    root@kitploit:~
    `sheet_add_aoa` उपयोगिता फ़ंक्शन वर्कशीट में सेल मानों को संशोधित करता है।  पहला
    तर्क वर्कशीट ऑब्जेक्ट है।  दूसरा तर्क मानों की सरणियों की एक सरणी
    है।  `origin` कुंजी नियंत्रित करती है कि सेल कहाँ लिखे जाएँगे।  निम्न
    स्निपेट `B3=1` और `E5="abc"` सेट करता है:```js
    XLSX.utils.sheet_add_aoa(worksheet, [
      [1],                             // <-- Write 1 to cell B3
      ,                                // <-- Do nothing in row 4
      [/*B5*/, /*C5*/, /*D5*/, "abc"]  // <-- Write "abc" to cell E5
    ], { origin: "B3" });
    

    "एरे ऑफ एरेज़ इनपुट" फ़ंक्शन और वैकल्पिक opts तर्क का अधिक विवरण में वर्णन करता है।

    उदाहरण

    वर्कशीट में पंक्तियाँ जोड़ना (दिखाने के लिए क्लिक करें)

    विशेष उद्गम मान -1, को रेंज की अंतिम पंक्ति के बाद वाली पंक्ति के कॉलम A में शुरू करने, डेटा जोड़ने का निर्देश देता है:```js XLSX.utils.sheet_add_aoa(worksheet, [ ["first row after data", 1], ["second row after data", 2] ], { origin: -1 });

    sheet_add_aoa
    root@kitploit:~
    </details>
    
    
    ### अन्य वर्कशीट / वर्कबुक / सेल गुण संशोधित करना
    
    ["सामान्य स्प्रेडशीट प्रारूप"](#common-spreadsheet-format) अनुभाग वस्तु संरचनाओं का
    अधिक विस्तार से वर्णन करता है।
    
    ## डेटा पैकेजिंग और रिलीज़ करना
    
    ### वर्कबुक लिखना
    
    **API**
    
    _डेटा से स्प्रेडशीट बाइट्स (फ़ाइल) उत्पन्न करें_```js
    var data = XLSX.write(workbook, opts);
    

    write विधि कार्यपुस्तिका के डेटा को मेमोरी में एक फ़ाइल में पैकेज करने का प्रयास करती है डिफ़ॉल्ट रूप से, XLSX फ़ाइलें उत्पन्न होती हैं, लेकिन इसे opts तर्क के bookType गुण द्वारा नियंत्रित किया जा सकता है। type विकल्प के आधार पर, डेटा को "binary string", JS string, Uint8Array या Buffer के रूप में संग्रहीत किया जा सकता है।

    दूसरा opts तर्क आवश्यक है। "लेखन विकल्प" समर्थित गुणों और व्यवहारों को शामिल करता है।

    फ़ाइल उत्पन्न करें और सहेजने का प्रयास करें```js XLSX.writeFile(workbook, filename, opts);

    root@kitploit:~
    The `writeFile` विधि डेटा को पैकेज करती है और नई फ़ाइल को सहेजने का प्रयास करती है।  निर्यात फ़ाइल प्रारूप `filename` के एक्सटेंशन द्वारा निर्धारित होता है (`SheetJS.xlsx` XLSX निर्यात का संकेत देता है, `SheetJS.xlsb` XLSB निर्यात का संकेत देता है, आदि)।
    
    `writeFile` विधि फ़ाइल सहेजने को आरंभ करने के लिए प्लेटफ़ॉर्म-विशिष्ट APIs का उपयोग करती है। NodeJS में, `fs.readFileSync` एक फ़ाइल बना सकता है।  वेब ब्राउज़र में, HTML5 `download` विशेषता का उपयोग करके डाउनलोड का प्रयास किया जाता है, IE के लिए फ़ॉलबैक के साथ।
    
    _एक XLSX फ़ाइल उत्पन्न करें और सहेजने का प्रयास करें_```js
    XLSX.writeFileXLSX(workbook, filename, opts);
    

    The writeFile विधि कई अलग-अलग निर्यात फ़ंक्शनों को एम्बेड करती है। यह डेवलपर अनुभव के लिए बहुत अच्छा है, लेकिन वर्तमान डेवलपर टूल्स का उपयोग करके tree shaking के लिए उपयुक्त नहीं है। जब केवल XLSX निर्यात की आवश्यकता होती है, तो यह विधि अन्य निर्यात फ़ंक्शनों को संदर्भित करने से बचती है।

    दूसरा opts तर्क वैकल्पिक है। "लेखन विकल्प" समर्थित गुणों और व्यवहारों को कवर करता है।

    उदाहरण

    NodeJS सर्वर में स्थानीय फ़ाइल (देखने के लिए क्लिक करें)

    writeFile सर्वर वातावरण में fs.writeFileSync का उपयोग करता है:```js var XLSX = require("xlsx");

    /* output format determined by filename */ XLSX.writeFile(workbook, "out.xlsb");

    root@kitploit:~
    Node ESM के लिए, `writeFile` सहायक सक्षम नहीं है। इसके बजाय, `fs.writeFileSync`
    का उपयोग फ़ाइल डेटा को `Buffer` में लिखने के लिए किया जाना चाहिए, ताकि `XLSX.write` के साथ उपयोग किया जा सके:```js
    import { writeFileSync } from "fs";
    import { write } from "xlsx/xlsx.mjs";
    
    const buf = write(workbook, {type: "buffer", bookType: "xlsb"});
    /* buf is a Buffer */
    const workbook = writeFileSync("out.xlsb", buf);
    
    Deno एप्लिकेशन में लोकल फ़ाइल (दिखाने के लिए क्लिक करें)

    writeFile अंदर से Deno.writeFileSync का उपयोग करता है:```js // @deno-types="https://deno.land/x/sheetjs/types/index.d.ts" import * as XLSX from 'https://deno.land/x/sheetjs/xlsx.mjs'

    XLSX.writeFile(workbook, "test.xlsx");

    root@kitploit:~
    Applications writing files must be invoked with the `--allow-write` flag.  The
    [`deno` demo](https://github.com/weareu/xlsx/blob/HEAD/demos/deno/) has more examples
    
    </details>
    
    <details>
      <summary><b>फोटोशॉप या InDesign प्लगइन में स्थानीय फ़ाइल</b> (देखने के लिए क्लिक करें)</summary>
    
    `writeFile` फोटोशॉप और अन्य ExtendScript लक्ष्यों में `File` तर्क को लपेटता है।
    निर्दिष्ट पथ एक पूर्ण पथ होना चाहिए:```js
    #include "xlsx.extendscript.js"
    
    /* output format determined by filename */
    XLSX.writeFile(workbook, "out.xlsx");
    /* at this point, out.xlsx is a file that you can distribute */
    

    इस extendscript डेमो में एक अधिक जटिल उदाहरण शामिल है।

    ब्राउज़र में उपयोगकर्ता की मशीन पर एक फ़ाइल डाउनलोड करें (दिखाने के लिए क्लिक करें)

    XLSX.writeFile फ़ाइल सेव ट्रिगर करने की कुछ तकनीकों को समाहित करता है:

    • URL ब्राउज़र API फ़ाइल के लिए एक ऑब्जेक्ट URL बनाता है, जिसका उपयोग लाइब्रेरी एक लिंक बनाकर और क्लिक ट्रिगर करके करती है। यह आधुनिक ब्राउज़रों में समर्थित है।
    • msSaveBlob फ़ाइल सेव ट्रिगर करने के लिए एक IE10+ API है।
    • IE_FileSave Windows XP और Windows 7 के लिए IE6+ में फ़ाइल लिखने के लिए VBScript और ActiveX का उपयोग करता है। शिम को संबंधित HTML पेज में शामिल किया जाना चाहिए।

    यह निर्धारित करने का कोई मानक तरीका नहीं है कि वास्तविक फ़ाइल डाउनलोड हो गई है या नहीं।```js /* output format determined by filename / XLSX.writeFile(workbook, "out.xlsb"); / at this point, out.xlsb will have been downloaded */

    root@kitploit:~
    </details>
    
    <details>
      <summary><b>विरासती ब्राउज़रों में फ़ाइल डाउनलोड करें</b> (दिखाने के लिए क्लिक करें)</summary>
    
    `XLSX.writeFile` तकनीकें अधिकांश आधुनिक ब्राउज़रों के साथ-साथ पुराने IE के लिए भी काम करती हैं।
    इससे भी पुराने ब्राउज़रों के लिए, रैपर लाइब्रेरीज़ द्वारा लागू किए गए वर्कअराउंड मौजूद हैं।
    
    [`FileSaver.js`](https://github.com/eligrey/FileSaver.js/) `saveAs` लागू करता है।
    ध्यान दें: यदि उपलब्ध हो, तो `XLSX.writeFile` स्वचालित रूप से `saveAs` को कॉल करेगा।```js
    /* bookType can be any supported output type */
    var wopts = { bookType:"xlsx", bookSST:false, type:"array" };
    
    var wbout = XLSX.write(workbook,wopts);
    
    /* the saveAs call downloads a file on the local machine */
    saveAs(new Blob([wbout],{type:"application/octet-stream"}), "test.xlsx");
    

    Downloadify एक Flash SWF बटन का उपयोग करता है स्थानीय फ़ाइलें उत्पन्न करने के लिए, ऐसे वातावरणों के लिए उपयुक्त जहाँ ActiveX उपलब्ध नहीं है:```js Downloadify.create(id,{ /* other options are required! read the downloadify docs for more info */ filename: "test.xlsx", data: function() { return XLSX.write(wb, {bookType:"xlsx", type:"base64"}); }, append: false, dataType: "base64" });

    root@kitploit:~
    यह [`oldie` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/oldie/) IE-संगत फ़ॉलबैक परिदृश्य दिखाता है।
    
    </details>
    
    <details>
      <summary><b>ब्राउज़र फ़ाइल अपलोड (ajax)</b> (दिखाने के लिए क्लिक करें)</summary>
    
    XHR का उपयोग करने वाला एक संपूर्ण उदाहरण [XHR डेमो में शामिल है](https://github.com/weareu/xlsx/blob/HEAD/demos/xhr/), साथ ही
    fetch और रैपर लाइब्रेरीज़ के उदाहरण भी हैं।  यह उदाहरण मानता है कि सर्वर
    Base64-एन्कोडेड फ़ाइलों को संभाल सकता है (बुनियादी nodejs सर्वर के लिए डेमो देखें):```js
    /* in this example, send a base64 string to the server */
    var wopts = { bookType:"xlsx", bookSST:false, type:"base64" };
    
    var wbout = XLSX.write(workbook,wopts);
    
    var req = new XMLHttpRequest();
    req.open("POST", "/upload", true);
    var formdata = new FormData();
    formdata.append("file", "test.xlsx"); // <-- server expects `file` to hold name
    formdata.append("data", wbout); // <-- `data` holds the base64-encoded data
    req.send(formdata);
    
    PhantomJS (हेडलेस वेबकिट) फ़ाइल निर्माण (देखने के लिए क्लिक करें)

    headless डेमो में HTML फ़ाइलों को XLSB वर्कबुक में बदलने के लिए PhantomJS का उपयोग करने वाला एक संपूर्ण डेमो शामिल है। PhantomJS fs.write मुख्य प्रक्रिया से फ़ाइलें लिखने का समर्थन करता है, लेकिन इसका इंटरफ़ेस NodeJS fs मॉड्यूल से भिन्न है:```js var XLSX = require('xlsx'); var fs = require('fs');

    /* generate a binary string / var bin = XLSX.write(workbook, { type:"binary", bookType: "xlsx" }); / write to file */ fs.write("test.xlsx", bin, "wb");

    root@kitploit:~
    नोट: अनुभाग ["HTML तालिकाओं को प्रोसेस करना"](#processing-html-tables) दिखाता है कि
    "Headless WebKit" में किसी पृष्ठ की HTML तालिकाओं से वर्कबुक कैसे उत्पन्न करें।
    
    </details>
    
    
    
    [शामिल डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/) मोबाइल ऐप्स और अन्य विशेष परिनियोजनों को कवर करते हैं।
    
    ### लेखन उदाहरण
    
    - <http://sheetjs.com/demos/table.html> एक HTML तालिका निर्यात करना
    - <http://sheetjs.com/demos/writexlsx.html> एक सरल फ़ाइल उत्पन्न करता है
    
    ### स्ट्रीमिंग लेखन
    
    स्ट्रीमिंग लेखन फ़ंक्शन `XLSX.stream` ऑब्जेक्ट में उपलब्ध हैं।  वे
    सामान्य लेखन फ़ंक्शनों के समान तर्क लेते हैं लेकिन एक NodeJS
    Readable Stream लौटाते हैं।
    
    - `XLSX.stream.to_csv` `XLSX.utils.sheet_to_csv` का स्ट्रीमिंग संस्करण है।
    - `XLSX.stream.to_html` `XLSX.utils.sheet_to_html` का स्ट्रीमिंग संस्करण है।
    - `XLSX.stream.to_json` `XLSX.utils.sheet_to_json` का स्ट्रीमिंग संस्करण है।
    
    <details>
      <summary><b>nodejs को CSV में बदलें और फ़ाइल लिखें</b> (दिखाने के लिए क्लिक करें)</summary>```js
    var output_file_name = "out.csv";
    var stream = XLSX.stream.to_csv(worksheet);
    stream.pipe(fs.createWriteStream(output_file_name));
    
    nodejs स्क्रीन पर JSON स्ट्रीम लिखें (देखने के लिए क्लिक करें)```js /* to_json returns an object-mode stream */ var stream = XLSX.stream.to_json(worksheet, {raw:true});

    /* the following stream converts JS objects to text via JSON.stringify */ var conv = new Transform({writableObjectMode:true}); conv._transform = function(obj, e, cb){ cb(null, JSON.stringify(obj) + "\n"); };

    stream.pipe(conv); conv.pipe(process.stdout);

    root@kitploit:~
    </details>
    
    <details>
      <summary><b>NUMBERS फ़ाइलें निर्यात करना</b> (दिखाने के लिए क्लिक करें)</summary>
    
    NUMBERS लेखक को काफी बड़े आधार की आवश्यकता होती है।  सहायक `xlsx.zahl`
    स्क्रिप्ट समर्थन प्रदान करती हैं।  `xlsx.zahl.js` स्टैंडअलोन और NodeJS
    उपयोग के लिए डिज़ाइन की गई है, जबकि `xlsx.zahl.mjs` ESM के लिए उपयुक्त है।
    
    _ब्राउज़र_```html
    <meta charset="utf8">
    <script src="xlsx.full.min.js"></script>
    <script src="xlsx.zahl.js"></script>
    <script>
    var wb = XLSX.utils.book_new(); var ws = XLSX.utils.aoa_to_sheet([
      ["SheetJS", "<3","விரிதாள்"],
      [72,,"Arbeitsblätter"],
      [,62,"数据"],
      [true,false,],
    ]); XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
    XLSX.writeFile(wb, "textport.numbers", {numbers: XLSX_ZAHL, compression: true});
    </script>
    

    Node```js var XLSX = require("./xlsx.flow"); var XLSX_ZAHL = require("./dist/xlsx.zahl"); var wb = XLSX.utils.book_new(); var ws = XLSX.utils.aoa_to_sheet([ ["SheetJS", "<3","விரிதாள்"], [72,,"Arbeitsblätter"], [,62,"数据"], [true,false,], ]); XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); XLSX.writeFile(wb, "textport.numbers", {numbers: XLSX_ZAHL, compression: true});

    root@kitploit:~
    _Deno_```ts
    import * as XLSX from './xlsx.mjs';
    import XLSX_ZAHL from './dist/xlsx.zahl.mjs';
    
    var wb = XLSX.utils.book_new(); var ws = XLSX.utils.aoa_to_sheet([
      ["SheetJS", "<3","விரிதாள்"],
      [72,,"Arbeitsblätter"],
      [,62,"数据"],
      [true,false,],
    ]); XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
    XLSX.writeFile(wb, "textports.numbers", {numbers: XLSX_ZAHL, compression: true});
    

    https://github.com/sheetjs/sheetaki nodejs प्रतिक्रिया के लिए राइट स्ट्रीम को पाइप करता है।

    JSON और JS डेटा उत्पन्न करना

    JSON और JS डेटा आमतौर पर एकल वर्कशीट का प्रतिनिधित्व करते हैं। इस अनुभाग में उपयोगिता फ़ंक्शन एकल वर्कशीट के साथ काम करते हैं।

    "सामान्य स्प्रेडशीट प्रारूप" अनुभाग ऑब्जेक्ट संरचना का अधिक विवरण में वर्णन करता है। workbook.SheetNames वर्कशीट नामों की एक क्रमबद्ध सूची है। workbook.Sheets एक ऑब्जेक्ट है जिसकी कुंजियाँ शीट नाम हैं और जिसके मान वर्कशीट ऑब्जेक्ट हैं।

    "पहली वर्कशीट" workbook.Sheets[workbook.SheetNames[0]] पर संग्रहीत है।

    API

    वर्कशीट से JS ऑब्जेक्ट्स की एक सरणी बनाएँ```js var jsa = XLSX.utils.sheet_to_json(worksheet, opts);

    root@kitploit:~
    _किसी वर्कशीट से JS मानों की array of arrays बनाएं_```js
    var aoa = XLSX.utils.sheet_to_json(worksheet, {...opts, header: 1});
    

    sheet_to_json उपयोगिता फ़ंक्शन एक वर्कबुक को row-major क्रम में स्कैन करता है, जिससे ऑब्जेक्ट्स की एक सरणी उत्पन्न होती है। दूसरा opts तर्क कई निर्यात निर्णयों को नियंत्रित करता है, जिनमें मानों का प्रकार (JS मान या formatted text) शामिल है। "JSON" अनुभाग इस तर्क का अधिक विस्तार से वर्णन करता है।

    डिफ़ॉल्ट रूप से, sheet_to_json पहली पंक्ति को स्कैन करता है और मानों को हेडर के रूप में उपयोग करता है। header: 1 विकल्प के साथ, फ़ंक्शन मानों की सरणियों की एक सरणी निर्यात करता है।

    उदाहरण

    x-spreadsheet एक इंटरैक्टिव डेटा ग्रिड है जो वेब ब्राउज़र में संरचित डेटा को देखने और संशोधित करने के लिए है। xspreadsheet डेमो में एक नमूना स्क्रिप्ट शामिल है जिसमें stox फ़ंक्शन वर्कबुक से x-spreadsheet डेटा ऑब्जेक्ट में रूपांतरण के लिए है। https://oss.sheetjs.com/sheetjs/x-spreadsheet एक लाइव डेमो है।

    React डेटा ग्रिड में डेटा का पूर्वावलोकन (दिखाने के लिए क्लिक करें)

    react-data-grid react के लिए अनुकूलित एक डेटा ग्रिड है। यह दो प्रॉपर्टीज़ की अपेक्षा करता है: डेटा ऑब्जेक्ट्स के rows और columns जो कॉलमों का वर्णन करते हैं। डेटा को react data grid API में फिट करने के लिए सरणियों की एक सरणी से शुरू करना सबसे आसान है।

    यह डेमो एक रिमोट फ़ाइल लाने और XLSX.read का उपयोग करके निकालने से शुरू होता है:```js import { useEffect, useState } from "react"; import DataGrid from "react-data-grid"; import { read, utils } from "xlsx";

    const url = "https://oss.sheetjs.com/test_files/RkNumber.xls";

    export default function App() { const [columns, setColumns] = useState([]); const [rows, setRows] = useState([]); useEffect(() => {(async () => { const wb = read(await (await fetch(url)).arrayBuffer(), { WTF: 1 });

    root@kitploit:~
    /* use sheet_to_json with header: 1 to generate an array of arrays */
    const data = utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], { header: 1 });
    
    /* see react-data-grid docs to understand the shape of the expected data */
    setColumns(data[0].map((r) => ({ key: r, name: r })));
    setRows(data.slice(1).map((r) => r.reduce((acc, x, i) => {
      acc[data[0][i]] = x;
      return acc;
    }, {})));
    

    })(); });

    return ; }

    root@kitploit:~
    </details>
    
    <details>
      <summary><b>VueJS डेटा ग्रिड में डेटा का पूर्वावलोकन</b> (दिखाने के लिए क्लिक करें)</summary>
    
    [`vue3-table-lite`](https://github.com/linmasahiro/vue3-table-lite) एक सरल
    VueJS 3 डेटा टेबल है। इसे [VueJS डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/vue/modify/) में दिखाया गया है।
    
    </details>
    
    <details>
      <summary><b>डेटाबेस (SQL या no-SQL) में डेटा भरना</b> (दिखाने के लिए क्लिक करें)</summary>
    
    [`database` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/database/) में डेटाबेस और क्वेरी परिणामों के साथ काम करने के
    उदाहरण शामिल हैं।
    
    </details>
    
    <details>
      <summary><b>TensorFlow.js के साथ संख्यात्मक गणना</b> (दिखाने के लिए क्लिक करें)</summary>
    
    [`@tensorflow/tfjs`](https://github.com/weareu/xlsx/blob/HEAD/@tensorflow/tfjs) और अन्य लाइब्रेरीज़ डेटा को सरल
    ऐरे में अपेक्षा करती हैं, जो उन वर्कशीटों के लिए उपयुक्त हैं जहाँ प्रत्येक कॉलम एक डेटा वेक्टर होता है। यह
    उस तरीके का ट्रांसपोज़ है जिस तरह अधिकांश लोग स्प्रेडशीट का उपयोग करते हैं, जहाँ प्रत्येक पंक्ति एक वेक्टर होती है।
    
    एक अकेला `Array#map` `sheet_to_json` निर्यात से व्यक्तिगत नामित पंक्तियाँ निकाल सकता है:```js
    const XLSX = require("xlsx");
    const tf = require('@tensorflow/tfjs');
    
    const key = "age"; // this is the field we want to pull
    const ages = XLSX.utils.sheet_to_json(worksheet).map(r => r[key]);
    const tf_data = tf.tensor1d(ages);
    

    सभी फ़ील्ड्स को एक साथ प्रोसेस किया जा सकता है, header: 1 के साथ sheet_to_json एक्सपोर्ट द्वारा उत्पन्न 2D टेंसर के transpose का उपयोग करके। पहली पंक्ति, यदि उसमें हेडर लेबल हैं, तो उसे एक slice के साथ हटा दिया जाना चाहिए:```js const XLSX = require("xlsx"); const tf = require('@tensorflow/tfjs');

    /* array of arrays of the data starting on the second row / const aoa = XLSX.utils.sheet_to_json(worksheet, {header: 1}).slice(1); / dataset in the "correct orientation" / const tf_dataset = tf.tensor2d(aoa).transpose(); / pull out each dataset with a slice */ const tf_field0 = tf_dataset.slice([0,0], [1,tensor.shape[1]]).flatten(); const tf_field1 = tf_dataset.slice([1,0], [1,tensor.shape[1]]).flatten();

    root@kitploit:~
    The [`array` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/array/) एक संपूर्ण उदाहरण दिखाता है।
    
    </details>
    
    
    ### HTML तालिकाएँ उत्पन्न करना
    
    **API**
    
    _वर्कशीट से HTML तालिका उत्पन्न करें_```js
    var html = XLSX.utils.sheet_to_html(worksheet);
    

    sheet_to_html यूटिलिटी फ़ंक्शन वर्कशीट डेटा के आधार पर HTML कोड उत्पन्न करता है।
    वर्कशीट में प्रत्येक सेल एक <TD> एलिमेंट से मैप किया जाता है। मर्ज किए गए सेल
    वर्कशीट में colspan और rowspan एट्रिब्यूट्स सेट करके सीरियलाइज़ किए जाते हैं।

    उदाहरण

    sheet_to_html यूटिलिटी फ़ंक्शन ऐसा HTML कोड उत्पन्न करता है जिसे जोड़ा जा सकता है
    किसी भी DOM एलिमेंट में innerHTML सेट करके:```js var container = document.getElementById("tavolo"); container.innerHTML = XLSX.utils.sheet_to_html(worksheet);

    root@kitploit:~
    `fetch` के साथ संयोजन करके, एक वर्कबुक से साइट बनाना सीधा है:
    
    <details>
      <summary><b>वेनिला JS + HTML fetch वर्कबुक और टेबल पूर्वावलोकन जनरेट करें</b> (क्लिक करके दिखाएँ)</summary>```html
    <body>
      <style>TABLE { border-collapse: collapse; } TD { border: 1px solid; }</style>
      <div id="tavolo"></div>
      <script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
      <script type="text/javascript">
    (async() => {
      /* fetch and parse workbook -- see the fetch example for details */
      const workbook = XLSX.read(await (await fetch("sheetjs.xlsx")).arrayBuffer());
    
      let output = [];
      /* loop through the worksheet names in order */
      workbook.SheetNames.forEach(name => {
    
        /* generate HTML from the corresponding worksheets */
        const worksheet = workbook.Sheets[name];
        const html = XLSX.utils.sheet_to_html(worksheet);
    
        /* add a header with the title name followed by the table */
        output.push(`<H3>${name}</H3>${html}`);
      });
      /* write to the DOM at the end */
      tavolo.innerHTML = output.join("\n");
    })();
      </script>
    </body>
    
    React में workbook fetch करें और HTML तालिका पूर्वावलोकन उत्पन्न करें (click to show)

    आम तौर पर React-अनुकूल वर्कफ़्लो का उपयोग करने की अनुशंसा की जाती है, लेकिन HTML उत्पन्न करना और उसे React में dangerouslySetInnerHTML के साथ उपयोग करना संभव है:```jsx function Tabeller(props) { /* the workbook object is the state */ const [workbook, setWorkbook] = React.useState(XLSX.utils.book_new());

    /* fetch and update the workbook with an effect / React.useEffect(() => { (async() => { / fetch and parse workbook -- see the fetch example for details */ const wb = XLSX.read(await (await fetch("sheetjs.xlsx")).arrayBuffer()); setWorkbook(wb); })(); });

    return workbook.SheetNames.map(name => (<>

    name

    <div dangerouslySetInnerHTML={{ /* this __html mantra is needed to set the inner HTML */ __html: XLSX.utils.sheet_to_html(workbook.Sheets[name]) }} /> </>)); }

    root@kitploit:~
    यह [`react` डेमो](https://github.com/weareu/xlsx/blob/HEAD/demos/react) में और अधिक React उदाहरण शामिल हैं।
    
    </details>
    
    <details>
      <summary><b>VueJS वर्कबुक प्राप्त करें और HTML तालिका पूर्वावलोकन उत्पन्न करें</b> (दिखाने के लिए क्लिक करें)</summary>
    
    सामान्यतः VueJS-अनुकूल वर्कफ़्लो का उपयोग करने की सलाह दी जाती है, लेकिन यह संभव है
    कि HTML उत्पन्न करके इसे `v-html` निर्देश के साथ VueJS में उपयोग किया जाए:```jsx
    import { read, utils } from 'xlsx';
    import { reactive } from 'vue';
    
    const S5SComponent = {
      mounted() { (async() => {
        /* fetch and parse workbook -- see the fetch example for details */
        const workbook = read(await (await fetch("sheetjs.xlsx")).arrayBuffer());
        /* loop through the worksheet names in order */
        workbook.SheetNames.forEach(name => {
          /* generate HTML from the corresponding worksheets */
          const html = utils.sheet_to_html(workbook.Sheets[name]);
          /* add to state */
          this.wb.wb.push({ name, html });
        });
      })(); },
      /* this state mantra is required for array updates to work */
      setup() { return { wb: reactive({ wb: [] }) }; },
      template: `
      <div v-for="ws in wb.wb" :key="ws.name">
        <h3>{{ ws.name }}</h3>
        <div v-html="ws.html"></div>
      </div>`
    };
    

    vuejs डेमो में और अधिक React उदाहरण शामिल हैं।

    एकल-वर्कशीट स्नैपशॉट्स जनरेट करना

    sheet_to_* फ़ंक्शन एक वर्कशीट ऑब्जेक्ट स्वीकार करते हैं।

    API

    एक वर्कशीट से CSV जनरेट करें```js var csv = XLSX.utils.sheet_to_csv(worksheet, opts);

    root@kitploit:~
    यह स्नैपशॉट "CSV UTF8 (`.csv`)" आउटपुट प्रकार को दोहराने के लिए डिज़ाइन किया गया है।
    ["Delimiter-Separated Output"](#delimiter-separated-output) फ़ंक्शन और
    वैकल्पिक `opts` तर्क का अधिक विवरण देता है।
    
    _एक एकल वर्कशीट से "Text" उत्पन्न करें_```js
    var txt = XLSX.utils.sheet_to_txt(worksheet, opts);
    

    यह स्नैपशॉट "UTF16 Text (.txt)" आउटपुट प्रकार को दोहराने के लिए डिज़ाइन किया गया है। "सीमांकक-पृथक आउटपुट" फ़ंक्शन और वैकल्पिक opts तर्क का अधिक विवरण देता है।

    एकल वर्कशीट से सूत्रों की सूची उत्पन्न करें```js var fmla = XLSX.utils.sheet_to_formulae(worksheet);

    root@kitploit:~
    यह स्नैपशॉट एम्बेडेड फ़ॉर्मूलों का प्रतिनिधित्व करने वाली प्रविष्टियों की एक सरणी उत्पन्न करता है।
    ऐरे फ़ॉर्मूले `range=formula` के रूप में प्रस्तुत किए जाते हैं, जबकि साधारण सेल
    `cell=formula or value` के रूप में प्रस्तुत किए जाते हैं।  स्ट्रिंग शाब्दिक को
    एपॉस्ट्रॉफ़ी `'` के साथ उपसर्गित किया जाता है, जो Excel के फ़ॉर्मूला बार प्रदर्शन के अनुरूप है।
    
    ["Formulae Output"](#formulae-output) फ़ंक्शन का अधिक विवरण देता है।
    
    ## इंटरफ़ेस
    
    `XLSX` ब्राउज़र में उजागर चर और निर्यातित node चर है।
    
    `XLSX.version` लाइब्रेरी का संस्करण है (बिल्ड स्क्रिप्ट द्वारा जोड़ा गया)।
    
    `XLSX.SSF` [प्रारूप लाइब्रेरी](https://git.io/ssf) का एक एम्बेडेड संस्करण है।
    
    ### पार्सिंग फ़ंक्शन
    
    `XLSX.read(data, read_opts)` `data` को पार्स करने का प्रयास करता है।
    
    `XLSX.readFile(filename, read_opts)` `filename` को पढ़ने और पार्स करने का प्रयास करता है।
    
    पार्सिंग विकल्प [Parsing Options](#parsing-options) अनुभाग में वर्णित हैं।
    
    ### लेखन फ़ंक्शन
    
    `XLSX.write(wb, write_opts)` वर्कबुक `wb` को लिखने का प्रयास करता है।
    
    `XLSX.writeFile(wb, filename, write_opts)` `wb` को `filename` में लिखने का प्रयास करता है।
    ब्राउज़र-आधारित वातावरण में, यह क्लाइंट-साइड डाउनलोड को बल देने का प्रयास करेगा।
    
    `XLSX.writeFileAsync(wb, filename, o, cb)` `wb` को `filename` में लिखने का प्रयास करता है।
    यदि `o` छोड़ दिया गया है, तो लेखक तीसरे तर्क को कॉलबैक के रूप में उपयोग करेगा।
    
    `XLSX.stream` में स्ट्रीमिंग लेखन फ़ंक्शनों का एक सेट होता है।
    
    लेखन विकल्प [Writing Options](#writing-options) अनुभाग में वर्णित हैं।
    
    ### उपयोगिताएँ
    
    उपयोगिताएँ `XLSX.utils` ऑब्जेक्ट में उपलब्ध हैं और [Utility Functions](#utility-functions) अनुभाग में वर्णित हैं:
    
    **निर्माण:**
    
    - `book_new` एक खाली वर्कबुक बनाता है
    - `book_append_sheet` एक वर्कबुक में वर्कशीट जोड़ता है
    
    **आयात:**
    
    - `aoa_to_sheet` JS डेटा की सरणियों की एक सरणी को वर्कशीट में परिवर्तित करता है।
    - `json_to_sheet` JS ऑब्जेक्ट्स की एक सरणी को वर्कशीट में परिवर्तित करता है।
    - `table_to_sheet` एक DOM TABLE तत्व को वर्कशीट में परिवर्तित करता है।
    - `sheet_add_aoa` मौजूदा वर्कशीट में JS डेटा की सरणियों की एक सरणी जोड़ता है।
    - `sheet_add_json` मौजूदा वर्कशीट में JS ऑब्जेक्ट्स की एक सरणी जोड़ता है।
    
    
    **निर्यात:**
    
    - `sheet_to_json` वर्कशीट ऑब्जेक्ट को JSON ऑब्जेक्ट्स की सरणी में परिवर्तित करता है।
    - `sheet_to_csv` डिलीमीटर-पृथक-मान आउटपुट उत्पन्न करता है।
    - `sheet_to_txt` UTF16 स्वरूपित पाठ उत्पन्न करता है।
    - `sheet_to_html` HTML आउटपुट उत्पन्न करता है।
    - `sheet_to_formulae` फ़ॉर्मूलों की एक सूची उत्पन्न करता है (मान फ़ॉलबैक के साथ)।
    
    
    **सेल और सेल पता हेरफेर:**
    
    - `format_cell` एक सेल के लिए पाठ मान उत्पन्न करता है (संख्या प्रारूपों का उपयोग करके)।
    - `encode_row / decode_row` 0-अनुक्रमित पंक्तियों और 1-अनुक्रमित पंक्तियों के बीच परिवर्तित करता है।
    - `encode_col / decode_col` 0-अनुक्रमित स्तंभों और स्तंभ नामों के बीच परिवर्तित करता है।
    - `encode_cell / decode_cell` सेल पतों को परिवर्तित करता है।
    - `encode_range / decode_range` सेल श्रेणियों को परिवर्तित करता है।
    
    ## सामान्य स्प्रेडशीट प्रारूप
    
    SheetJS सामान्य स्प्रेडशीट प्रारूप (CSF) का अनुपालन करता है:
    
    ### सामान्य संरचनाएँ
    
    सेल पता ऑब्जेक्ट को `{c:C, r:R}` के रूप में संग्रहीत किया जाता है, जहाँ `C` और `R` क्रमशः 0-अनुक्रमित स्तंभ और पंक्ति संख्याएँ हैं।  उदाहरण के लिए, सेल पता `B5` ऑब्जेक्ट `{c:1, r:4}` द्वारा दर्शाया गया है।
    
    सेल श्रेणी ऑब्जेक्ट को `{s:S, e:E}` के रूप में संग्रहीत किया जाता है, जहाँ `S` श्रेणी में पहला सेल है और `E` अंतिम सेल है।  श्रेणियाँ समावेशी हैं।  उदाहरण के लिए, श्रेणी `A3:B7` ऑब्जेक्ट `{s:{c:0, r:2}, e:{c:1, r:6}}` द्वारा दर्शाई गई है।
    उपयोगिता फ़ंक्शन एक शीट श्रेणी की पंक्ति-प्रमुख क्रम में ट्रैवर्सल करते हैं:```js
    for(var R = range.s.r; R <= range.e.r; ++R) {
      for(var C = range.s.c; C <= range.e.c; ++C) {
        var cell_address = {c:C, r:R};
        /* if an A1-style address is needed, encode the address */
        var cell_ref = XLSX.utils.encode_cell(cell_address);
      }
    }
    

    सेल ऑब्जेक्ट

    सेल ऑब्जेक्ट सादे JS ऑब्जेक्ट होते हैं जिनमें कुंजियाँ और मान निम्नलिखित परंपरा का पालन करते हैं:

    KeyDescription
    vकच्चा मान (अधिक जानकारी के लिए डेटा प्रकार अनुभाग देखें)
    wस्वरूपित पाठ (यदि लागू हो)
    tप्रकार: b बूलियन, e त्रुटि, n संख्या, d दिनांक, s पाठ, z स्टब
    fसेल सूत्र जो A1-शैली स्ट्रिंग के रूप में एन्कोड किया गया है (यदि लागू हो)
    Fयदि सूत्र ऐरे सूत्र है तो संलग्न ऐरे की रेंज (यदि लागू हो)
    Dयदि सत्य है, तो ऐरे सूत्र गतिशील है (यदि लागू हो)
    rरिच टेक्स्ट एन्कोडिंग (यदि लागू हो)
    hरिच टेक्स्ट का HTML रेंडरिंग (यदि लागू हो)
    cसेल से जुड़ी टिप्पणियाँ
    zसेल से जुड़ी संख्या प्रारूप स्ट्रिंग (यदि अनुरोध किया गया हो)
    lसेल हाइपरलिंक ऑब्जेक्ट (.Target लिंक रखता है, .Tooltip टूलटिप है)
    sसेल की शैली/थीम (यदि लागू हो)

    अंतर्निहित निर्यात उपयोगिताएँ (जैसे CSV निर्यातक) यदि w पाठ उपलब्ध हो तो उसका उपयोग करेंगी। किसी मान को बदलने के लिए, निर्यात करने का प्रयास करने से पहले cell.w को हटाना (या उसे undefined पर सेट करना) सुनिश्चित करें। उपयोगिताएँ यदि संभव हो तो संख्या प्रारूप (cell.z) और कच्चे मान से w पाठ को पुनः उत्पन्न करेंगी।

    वास्तविक ऐरे सूत्र ऐरे रेंज के पहले सेल के f फ़ील्ड में संग्रहीत होता है। रेंज के अन्य सेल f फ़ील्ड को छोड़ देंगे।

    डेटा प्रकार

    कच्चा मान v मान गुण में संग्रहीत होता है, जिसकी व्याख्या t प्रकार गुण के आधार पर की जाती है। यह पृथक्करण संख्याओं के साथ-साथ संख्यात्मक पाठ के प्रतिनिधित्व की अनुमति देता है। 6 मान्य सेल प्रकार हैं:

    TypeDescription
    bबूलियन: मान की व्याख्या JS boolean के रूप में की जाती है
    eत्रुटि: मान एक संख्यात्मक कोड है और w गुण सामान्य नाम संग्रहीत करता है **
    nसंख्या: मान एक JS number है **
    dदिनांक: मान एक JS Date ऑब्जेक्ट या दिनांक के रूप में पार्स की जाने वाली स्ट्रिंग है **
    sपाठ: मान की व्याख्या JS string के रूप में की जाती है और पाठ के रूप में लिखा जाता है **
    zस्टब: रिक्त स्टब सेल जिसे डेटा प्रोसेसिंग उपयोगिताओं द्वारा अनदेखा किया जाता है **
    त्रुटि मान और व्याख्या (देखने के लिए क्लिक करें)
    ValueError Meaning
    0x00#NULL!
    0x07#DIV/0!
    0x0F#VALUE!
    0x17#REF!
    0x1D#NAME?
    0x24#NUM!
    0x2A#N/A
    0x2B#GETTING_DATA

    प्रकार n संख्या प्रकार है। इसमें डेटा के वे सभी रूप शामिल हैं जिन्हें Excel संख्याओं के रूप में संग्रहीत करता है, जैसे दिनांक/समय और बूलियन फ़ील्ड। Excel विशेष रूप से उस डेटा का उपयोग करता है जो IEEE754 फ़्लोटिंग पॉइंट संख्या में फिट हो सकता है, बिल्कुल JS Number की तरह, इसलिए v फ़ील्ड कच्ची संख्या रखता है। w फ़ील्ड स्वरूपित पाठ रखता है। दिनांक डिफ़ॉल्ट रूप से संख्याओं के रूप में संग्रहीत होते हैं और XLSX.SSF.parse_date_code के साथ परिवर्तित किए जाते हैं।

    प्रकार d दिनांक प्रकार है, जो केवल तब उत्पन्न होता है जब cellDates विकल्प पारित किया जाता है। चूँकि JSON में कोई प्राकृतिक दिनांक प्रकार नहीं है, पार्सर से सामान्यतः ISO 8601 दिनांक स्ट्रिंग संग्रहीत करने की अपेक्षा की जाती है, जैसे आपको date.toISOString() से मिलेगी। दूसरी ओर, लेखकों और निर्यातकों को दिनांक स्ट्रिंग और JS Date ऑब्जेक्ट को संभालने में सक्षम होना चाहिए। ध्यान दें कि Excel समय क्षेत्र संशोधकों की अवहेलना करता है और सभी दिनांकों को स्थानीय समय क्षेत्र में मानता है। लाइब्रेरी इस त्रुटि के लिए सुधार नहीं करती है।

    प्रकार s स्ट्रिंग प्रकार है। मान स्पष्ट रूप से पाठ के रूप में संग्रहीत किए जाते हैं। Excel इन सेलों की व्याख्या "पाठ के रूप में संग्रहीत संख्या" के रूप में करेगा। उत्पन्न Excel फ़ाइलें स्वचालित रूप से उस त्रुटि के वर्ग को दबा देती हैं, लेकिन अन्य प्रारूप त्रुटियाँ उत्पन्न कर सकते हैं।

    प्रकार z रिक्त स्टब सेलों का प्रतिनिधित्व करता है। ये उन मामलों में उत्पन्न होते हैं जहाँ सेलों का कोई निर्धारित मान नहीं होता लेकिन उनमें टिप्पणियाँ या अन्य मेटाडेटा होते हैं। कोर लाइब्रेरी डेटा प्रोसेसिंग उपयोगिता फ़ंक्शनों द्वारा इन्हें अनदेखा किया जाता है। डिफ़ॉल्ट रूप से ये सेल उत्पन्न नहीं होते; पार्सर sheetStubs विकल्प को true पर सेट किया जाना चाहिए।

    दिनांक

    Excel दिनांक कोड विवरण (देखने के लिए क्लिक करें)

    डिफ़ॉल्ट रूप से, Excel दिनांकों को संख्याओं के रूप में संग्रहीत करता है, जिसमें एक प्रारूप कोड होता है जो दिनांक प्रसंस्करण निर्दिष्ट करता है। उदाहरण के लिए, दिनांक 19-Feb-17 को d-mmm-yy संख्या प्रारूप के साथ संख्या 42785 के रूप में संग्रहीत किया जाता है। SSF मॉड्यूल संख्या प्रारूपों को समझता है और उचित रूपांतरण करता है।

    XLSX एक विशेष दिनांक प्रकार d का भी समर्थन करता है जहाँ डेटा ISO 8601 दिनांक स्ट्रिंग होता है। फ़ॉर्मेटर दिनांक को वापस संख्या में परिवर्तित करता है।

    सभी पार्सरों के लिए डिफ़ॉल्ट व्यवहार संख्या सेल उत्पन्न करना है। cellDates को true पर सेट करने से जनरेटर दिनांक संग्रहीत करने के लिए बाध्य होंगे।

    समय क्षेत्र और दिनांक (देखने के लिए क्लिक करें)

    Excel में सार्वभौमिक समय की कोई मूल अवधारणा नहीं है। सभी समय स्थानीय समय क्षेत्र में निर्दिष्ट होते हैं। Excel की सीमाएँ सही निरपेक्ष दिनांक निर्दिष्ट करने से रोकती हैं।

    Excel का अनुसरण करते हुए, यह लाइब्रेरी सभी दिनांकों को स्थानीय समय क्षेत्र के सापेक्ष मानती है।

    युग: 1900 और 1904 (देखने के लिए क्लिक करें)

    Excel दो युगों का समर्थन करता है (1 जनवरी 1900 और 1 जनवरी 1904). वर्कबुक का युग वर्कबुक की जाँच करके निर्धारित किया जा सकता है wb.Workbook.WBProps.date1904 प्रॉपर्टी:```js !!(((wb.Workbook||{}).WBProps||{}).date1904)

    root@kitploit:~
    </details>
    
    ### शीट ऑब्जेक्ट्स
    
    प्रत्येक कुंजी जो `!` से प्रारंभ नहीं होती, एक सेल से मैप होती है (`A-1` संकेतन का उपयोग करके)
    
    `sheet[address]` निर्दिष्ट पते के लिए सेल ऑब्जेक्ट लौटाता है।
    
    **विशेष शीट कुंजियाँ (`sheet[key]` के रूप में पहुँच योग्य, प्रत्येक `!` से प्रारंभ होती हैं):**
    
    - `sheet['!ref']`: शीट रेंज का प्रतिनिधित्व करने वाली A-1 आधारित रेंज।  जो फ़ंक्शन
      शीट के साथ काम करते हैं, उन्हें रेंज निर्धारित करने के लिए इस पैरामीटर का उपयोग करना चाहिए।  रेंज के बाहर निर्दिष्ट किए गए सेल
      प्रोसेस नहीं होते हैं।  विशेष रूप से, जब
      शीट को हाथ से लिखा जाता है, तो रेंज के बाहर के सेल शामिल नहीं होते हैं
    
      शीट को संभालने वाले फ़ंक्शनों को `!ref` फ़ील्ड की उपस्थिति की जाँच करनी चाहिए।
      यदि `!ref` छोड़ दिया गया है या मान्य रेंज नहीं है, तो फ़ंक्शन
      शीट को खाली मानने या रेंज का अनुमान लगाने के लिए स्वतंत्र हैं।  जो मानक उपकरण
      इस लाइब्रेरी के साथ आते हैं, वे शीट को खाली मानते हैं (उदाहरण के लिए, CSV आउटपुट
      खाली स्ट्रिंग है)।
    
      जब `sheetRows` प्रॉपर्टी सेट होने पर वर्कशीट पढ़ी जाती है, तो ref पैरामीटर
      प्रतिबंधित रेंज का उपयोग करेगा।  मूल रेंज `ws['!fullref']` पर सेट होती है
    
    - `sheet['!margins']`: पेज मार्जिन का प्रतिनिधित्व करने वाला ऑब्जेक्ट।  डिफ़ॉल्ट मान
      Excel के "normal" प्रीसेट का अनुसरण करते हैं।  Excel में "wide" और "narrow" प्रीसेट भी हैं
      लेकिन वे कच्चे माप के रूप में संग्रहीत होते हैं। मुख्य प्रॉपर्टीज़ नीचे सूचीबद्ध हैं:
    
    <details>
    

    Read more