مواد پر جائیں

XML کو Excel میں تبدیل کریں

XML ایکسپورٹس، فیڈز اور ڈیٹا فائلوں کو فارمیٹ شدہ Excel شیٹ میں بدلیں — دہرائے جانے والے ریکارڈز آپ کے لیے پہچانے جاتے ہیں، ایٹریبیوٹس اور نیسٹڈ عناصر کالمز کی صورت میں ترتیب پاتے ہیں، اور کچھ بھی محفوظ نہیں کیا جاتا۔

  • کبھی محفوظ نہیں کی جاتی
  • نہ قطار، نہ انتظار
  • نہ سائن اپ، نہ واٹر مارک

یہ کیسے کام کرتا ہے

1

XML شامل کریں

.xml فائل ڈراپ کریں یا XML پیسٹ کریں۔ Excel کی اپنی XML Spreadsheet 2003 فائلیں بھی چلتی ہیں۔

2

ریکارڈز منتخب کریں

دہرایا جانے والا عنصر — product، item، row — آپ کے لیے چن لیا جاتا ہے، فائل کے باقی تمام ٹیبلز کی فہرست اور لائیو پیش نظارہ کے ساتھ۔

3

ڈاؤن لوڈ کریں

ایک .xlsx جس میں ہر کالم کے نمبرز اور تاریخیں درست قسم میں ہوں، اور ہیڈر رو بولڈ اور فلٹر کے قابل ہو۔

ٹری میں سے روز ڈھونڈنا

XML میں ٹیبل کا کوئی تصور نہیں، اس لیے سب سے پہلے یہ پہچاننا ضروری ہے کہ کون سے عناصر ریکارڈز ہیں۔ قابلِ اعتماد نشانی دہرائی جانا ہے: جس پیرنٹ عنصر میں ایک ہی نام کے بہت سے چائلڈ ہوں، وہ تقریباً ہمیشہ ریکارڈز کی فہرست ہوتی ہے، اور ان چائلڈز کے اپنے چائلڈ عناصر اور ایٹریبیوٹس کالمز بن جاتے ہیں۔ یہ طریقہ ڈیٹا XML کی بھاری اکثریت پر کام کرتا ہے — ایکسپورٹس، فیڈز، API جوابات، کنفیگریشن ڈمپس — کیونکہ یہ سب ایک ہی طرح بنتی ہیں۔

ایٹریبیوٹس اور چائلڈ عناصر دونوں کالمز میں بدلے جاتے ہیں، اور یہ ضروری ہے کیونکہ XML ایک ہی بات کہنے کے دو طریقے دیتی ہے اور مختلف سسٹمز مختلف طریقہ چنتے ہیں۔ ایک ایکسپورٹ id="42" کو ایٹریبیوٹ کے طور پر لکھتا ہے؛ دوسرا <id>42</id> کو عنصر کے طور پر؛ تیسرا ایک ہی دستاویز میں دونوں کرتا ہے۔ گرڈ کو اس فرق سے کوئی غرض نہیں اور آپ کو بھی نہیں ہونی چاہیے، اس لیے دونوں کالمز بن کر آتے ہیں، اور ایٹریبیوٹس پر نشان لگا دیا جاتا ہے تاکہ جو نام دونوں صورتوں میں آئے وہ آپس میں نہ ٹکرائے۔

ایک سطح سے زیادہ گہری نیسٹنگ کو عناصر کے نام جوڑ کر سیدھا کر دیا جاتا ہے، بالکل نیسٹڈ JSON کی طرح۔ جہاں کسی ریکارڈ میں دہرایا گیا چائلڈ ہو — ایک آرڈر کے اندر تین آرڈر لائنز — وہاں گرڈ اسے روز کی صورت میں اس کے ارد گرد کی ہر چیز دہرائے بغیر نہیں دکھا سکتا، اس لیے دہرائی گئی ویلیوز اپنے سیل میں رکھی جاتی ہیں۔ کالمز کے ناموں سے namespaces ہٹا دیے جاتے ہیں، کیونکہ اسپریڈشیٹ میں ns2:customerName نام کا کالم کسی کے کام کا نہیں، جبکہ ویلیوز کو ہاتھ نہیں لگایا جاتا۔

تحریری XML میں ڈھونڈنے کو کوئی ٹیبل نہیں ہوتا اور وہ بری طرح تبدیل ہوتی ہے۔ XHTML صفحہ، DocBook مضمون، ePub باب یا SVG ڈرائنگ ڈیٹا سیٹ نہیں بلکہ دستاویز ہے: اس کی ساخت جان بوجھ کر نیسٹڈ اور بے قاعدہ ہوتی ہے، اور روز بنانے کے لیے کوئی دہرایا جانے والا ریکارڈ نہیں ہوتا۔ تبدیلی کچھ نہ کچھ ضرور بنائے گی، اور وہ کچھ کام کا نہیں ہوگا۔ یہ صفحہ ڈیٹا XML کے لیے ہے، اور یہ فرق واضح رکھنا کسی بھی قدر سیٹنگز بدلنے سے زیادہ وقت بچاتا ہے۔

جب آپ کو کچھ اور چاہیے

جب آپ ساخت جانتے ہوں تو اس کا اندازہ لگوانے کے بجائے اسے سوچ سمجھ کر نکالیں۔ xmlstarlet sel -t -m "//order" -v "@id" -o "," -v "customer" -n data.xml ایک XPath ایکسپریشن سے بالکل وہی فیلڈز نکالتا ہے جو آپ چاہتے ہیں، اور xq یہی کام jq جیسی سنٹیکس سے کرتا ہے۔ یہی فرق ہے اس تبدیلی میں جو اتفاقاً چل جائے اور اس میں جسے آپ پائپ لائن میں لگا سکیں۔

بہت بڑی فائلوں کے لیے یہاں کا پورا طریقہ ہی غلط ہے: پوری دستاویز ایک ساتھ میموری میں پارس ہوتی ہے، اور ٹری کے طور پر پارس ہونے والی XML عام طور پر فائل کے سائز سے کئی گنا جگہ لیتی ہے۔ اسٹریمنگ پارسرز — Python کا iterparse، یا کسی بھی زبان میں SAX — کئی گیگا بائٹ کی دستاویز کو ثابت میموری میں پڑھ لیتے ہیں، اور چند سو میگا بائٹ سے آگے یہی واحد حقیقت پسندانہ طریقہ ہے۔

اکثر پوچھے جانے والے سوالات

اسے کیسے پتا چلتا ہے کہ XML کا کون سا حصہ ٹیبل ہے؟

ریکارڈز وہ عناصر ہیں جو ایک ہی پیرنٹ کے نیچے دہرائے جاتے ہیں — ہر <catalog> میں ہر <book>، RSS چینل میں ہر <item>۔ ہر گروپ کو اس کے ریکارڈز اور فیلڈز کی تعداد کے حساب سے اسکور دیا جاتا ہے، سب سے بہتر گروپ چنا جاتا ہے، اور باقی صرف ایک کلک کی دوری پر رہتے ہیں۔

ایٹریبیوٹس اور نیسٹڈ عناصر کا کیا ہوتا ہے؟

ہر ایک اپنے پاتھ کے نام سے ایک کالم بن جاتا ہے: id ایٹریبیوٹ id بنتا ہے، <author><name> سے author/name بنتا ہے، اور <price currency="EUR"> سے price اور price/@currency ملتے ہیں۔ جو فیلڈ ایک ہی ریکارڈ کے اندر دہرائی جائے، اسے ایک سیل میں جوڑ دیا جاتا ہے یا نمبر والے کالمز میں پھیلا دیا جاتا ہے۔

کیا یہ Excel کی XML Spreadsheet 2003 فائلیں کھول سکتا ہے؟

جی ہاں۔ ان فائلوں کو پہچان لیا جاتا ہے اور شیٹ بہ شیٹ تبدیل کیا جاتا ہے، نمبرز، تاریخیں اور ٹیکسٹ برقرار رہتے ہیں۔

اگر فائل میں کئی ٹیبلز ہوں — آرڈرز اور ان کے آئٹمز — تو؟

ہر دہرایا جانے والا گروپ الگ سے پیش کیا جاتا ہے۔ نیسٹڈ ٹیبل، جیسے ہر آرڈر کے اندر کے آئٹمز، میں ایک کالم ہوتا ہے جو اس کے پیرنٹ ریکارڈ کی نشاندہی کرتا ہے تاکہ دونوں شیٹس کو آپس میں ملایا جا سکے۔

کیا میری فائل کہیں محفوظ کی جاتی ہے؟

نہیں۔ XML کو یہیں پارس کیا جاتا ہے اور ورک بک یہیں لکھی جاتی ہے، کچھ بھی محفوظ نہیں کیا جاتا۔

کیا نامعلوم ذریعے سے آئی XML کھولنا محفوظ ہے؟

جی ہاں۔ فائل آپ کے براؤزر کا XML پارسر پڑھتا ہے، جو کبھی بیرونی entities یا DTDs لوڈ نہیں کرتا اور فائل کے اندر کی کوئی چیز چلا نہیں سکتا۔

جاننا مفید ہے: جو دستاویزات ڈیٹا کے بجائے تحریر ہوں — XHTML صفحات، DocBook مضامین — ان میں ڈھونڈنے کو کوئی ٹیبل نہیں ہوتا اور وہ اچھی طرح تبدیل نہیں ہوتیں۔ تقریباً 100 MB سے بڑی فائلیں آپ کے براؤزر کی میموری سے بڑھ سکتی ہیں۔

یہ ٹول اپنی ویب سائٹ پر لگائیں

کسی بھی بلاگ، کلاس پیج یا ہیلپ آرٹیکل کے لیے مفت۔ ایک اسنیپٹ پیسٹ کریں اور آپ کے وزیٹرز اسے سیدھا آپ کے صفحے پر استعمال کر سکیں گے۔