به نام خدا

در پارسي‌بلاگشرح فرمت اكسل

دوشنبه ۲۴ شهريور ۹۳ - ۱۰:۹ صبح

وقتي يك x به انتهاي پسوند فايل‌هاي Office اضافه شد
فرمت ذخيره‌سازي آن‌ها تغيير مهمي كرد
مبتني شد بر ساختار xml

با اين تغيير مهم
مجموعه Office به محيط متن‌باز آمد
و امكان ساده‌اي فراهم كرد
تا هر برنامه‌اي بتواند به فايل‌هاي ذخيره‌سازي آن متصل شود

برنامه‌نويس هستيد؟
اكنون به سادگي مي‌توانيد تمامي فايل‌هاي نرم‌افزارهاي Office را باز كنيد
من اين‌جا فايل‌هاي نرم‌افزار اكسل را معرفي مي‌كنم
فرمت xlsx
اطلاعاتي كه مي‌تواند براي دسترسي به داده‌هاي درون فايل
به شما ياري رساند

كافيست پسوند xlsx را به zip تغيير دهيد
اكنون آن را كه باز كنيد
با مهم‌ترين پوشه مواجه خواهيد شد: xl
اصلي‌ترين ديتاي شما در اين پوشه قرار دارد
از درون آن فايل workbook.xml را باز كنيد
با يك متن‌خوان معمولي مانند Notepad
در داخل تگ <sheets></sheets> فهرست صفحات فايل اكسل خود را مي‌بينيد:

<sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets>

به مشخصه sheetId آن بنگريد
مراقب باشيد اين عدد شما را فريب ندهد
آن‌چه بيانگر فايل برگه اطلاعات است
آرايه‌اي‌ست كه از يك آغاز مي‌شود
آرايه‌اي كه ايندكس آن برابر با چندمين تگ sheet است
حتماً بايد يك فايل xml با همين شماره در پوشه worksheets داشته باشيد
چيزي مانند: sheet1.xml
اگر سه تگ sheet داشته باشيم
فارغ از اين‌كه sheetId آن‌ها چه باشد
فايل‌هاي حاوي اطلاعات اين برگه‌ها از يك شماره‌گذاري مي‌شوند!
(مشخصه name فقط درون اكسل كاربرد دارد و بر روي برچسب صفحه نوشته مي‌شود)

درون اين فايل، فهرست مشخص‌كننده‌اي از ستون‌ها ذكر شده است
البته در صورتي‌كه مشخصات ستون‌ها تغيير كرده باشد
و اكسل لازم بداند اين اطلاعات را ثبت نمايد:

    <cols>
        <col min="1" max="1" width="6.25" customWidth="1"/>
        <col min="2" max="2" width="71.875" style="1" customWidth="1"/>
        <col min="3" max="3" width="13.75" style="6" customWidth="1"/>
        <col min="4" max="4" width="9" style="7"/>
        <col min="5" max="5" width="11" style="7" customWidth="1"/>
        <col min="6" max="6" width="10.5" style="9" customWidth="1"/>
        <col min="7" max="7" width="13.5" style="10" customWidth="1"/>
        <col min="8" max="9" width="9" style="5"/>
    </cols>

و سپس اطلاعات كامل تمام سلول‌هاي صفحه اكسل را خواهيد يافت
چيزي شبيه به اين:

    <sheetData>
        <row r="1" spans="1:9" s="2" ht="29.25" x14ac:dyDescent="0.2">
            <c r="A1" s="2" t="s"><v>32</v></c>
            <c r="B1" s="3" t="s"><v>33</v></c>
            <c r="C1" s="4" t="s"><v>34</v></c>
            <c r="D1" s="4" t="s"><v>42</v></c>
            <c r="E1" s="4" t="s"><v>35</v></c>
            <c r="F1" s="2" t="s"><v>36</v></c>
            <c r="G1" s="2" t="s"><v>39</v></c>
            <c r="H1" s="2" t="s"><v>37</v></c>
            <c r="I1" s="2" t="s"><v>38</v></c>
        </row>
        <row r="2" spans="1:9" ht="43.5" x14ac:dyDescent="0.5">
            <c r="A2"><v>1029</v></c>
            <c r="B2" s="1" t="s"><v>45</v></c>
            <c r="C2" s="6" t="s"><v>44</v></c>
            <c r="D2" s="7"><v>22</v></c>
            <c r="E2" s="8" t="s"><v>40</v></c>
            <c r="F2" s="9" t="s"><v>43</v></c>
            <c r="G2" s="10" t="s"><v>0</v></c>
        </row>
    </sheetData>

اما عبارت‌هاي داخل هر سلول را نمي‌بينيد
اين اطلاعات براي صرفه‌جويي در حجم فايل‌هاي ذخيره‌سازي
و براي ادغام موارد تكراري
در يك فايل مشترك براي تمام صفحات اكسل نگهداري مي‌شود
به اين ترتيب حجم فايل صفحه‌ها هم كم شده
دسترسي به آن‌ها سريع‌تر صورت مي‌پذيرد

يك فولدر به عقب برگرديد
و فايل sharedStrings.xml را باز كنيد
هر عبارت داخل هر سلول اكسل در تگ‌هايي ذخيره شده است، مانند:

<si><t>محتواي يك</t></si>
<si><t>محتواي دو</t></si>
<si><t>محتواي سه</t></si>

اگر همه اطلاعات اين صفحه را در يك آرايه بريزيد
آرايه‌اي كه از صفر آغاز شود
شماره هر آرايه دقيقاً همان رفرنسي‌ست كه در فايل صفحه ذكر شده است
يعني اكسل به جاي:

            <c r="A2"><v>محتواي صد و بيست و چهارم</v></c>

از اين تركيب استفاده كرده است:

 <c r="A2" t="s"><v>124</v></c>
 <si><t>محتواي صد و بيست و چهارم</t></si>

طبيعتاً براي سلول‌هايي كه محتواي تكراري داشته باشند
تنها يك كد استفاده مي‌شود

البته اين ويژگي در همه سلول‌ها رعايت نمي‌شود
اگر مشخصه t مربوط به تگ <c> داراي مقدار s بود
يعني محتواي سلول در فايل مشترك ذخيره شده
اما اگر چنين مشخصه‌اي نيافتيد
در مواردي كه محتواي سلول عدد باشد
يا فرمول
اكسل محتواي اصلي را در داخل تگ <v> قرار مي‌دهد
و اگر فرمولي در كار باشد در داخل تگ <f>

اين را نيز فراموش نفرماييد
كه گاهي بيش از يك تگ <t> داخل <si> وجود دارد
در مواردي كه اطلاعات داخل سلول فرمت داشته باشند
تغيير فونت و قلم و مانند آن
بايد محتويات تمام تگ‌هاي <t> را بگيريد و به هم ملحق كنيد
تا محتواي سلول را در اختيار داشته باشيد

با دانستن اين فرمت‌ها
ديگر لازم نيست براي Import اطلاعات اكسل به نرم‌افزار خود
آن را تبديل به csv نماييد
مستقيم مي‌توانيد در برنامه خود فايل اكسل را باز كنيد

پ.ن.
البته بيشتر برنامه‌نويس‌ها ترجيح مي‌دهند از ابزارهاي آماده براي باز كردن فايل‌هاي Office استفاده نمايند، ابزارهايي كه براي باز كردن Open Document‌ها طراحي شده‌اند. (http://en.wikipedia.org/wiki/OpenDocument)


مطلب بعدي: كاربازي مطلب قبلي: و بچه مدرسه اي

نظرات

شاكر: با سلام و احترام
بنده با اينكه برنامه نويس نيستم ولي از مطالب آموزنده شما بهره بردم و اميدوارم بتوانم بخش عظيمي از علاقه خويش در زمينه برنامه نويسي در اكسل و اكسس را در وبسايت جنابعالي تقويت نمايم
ضمنا از صراحت شما بسيار خرسند گرديدم
با آرزوي توفيق روز افزون براي شما استاد گراميسه‌شنبه ۱۶ آذر ۹۵ - ۹:۲۹ صبح
پاسخ: سلام. از توجه و عنايت شما سپاسگزارم. اميد كه مفيد واقع گردد. در خدمت هستم.
توكلي: با سلام خدمت برادر عزيزم
از آنجاييكه مطالب وبلاگ شما را چند وقتي است ميخوانم و ميدانم كه جنابعالي هم از علوم كامپيوتر شناخت داريد و هم دقت و دانش خوبي در مسائل ديني داريدميخواستم در مورد يك مطلب نظر شما را بدانم.
بنده از سايت آيت اله مكارم در مورد كسب درآمد از طريق گوگل ادسنس ( شركت در طرح درآمد زايي سايت گوگل با نشان دادن تبليغات گوگل در سايت خود ) و يا درآمد از طريق سايت يوتيوب ( آپلود ويدئو در سايت و گرفتن بخشي از درآمد بازديد از ويدئو) سوال كردم و ايشان فرمودند : چنانچه سايت هاي فاسد و مفسدي نباشد، و متعلق به كشورهاي محارب نظير اسرائيل و آمريكا نباشد، و مفسده اي در پي نداشته باشد اشكالي ندارد.
يوتيوب را به خاطر داشتن همه نوع ويدئو نميتوان پاك حساب كرد ولي بنده فكر نميكنم سايت گوگل فاسد محسوب شود اما الان نميدانم گوگل آمريكايي محسوب ميشود يا نه ؟ چون به صورت سهامي است و خوب بجز آمريكايي ها ممكن است سهامداران ديگري نيز داشته باشد . به نظر شما تصميم درست چيست ؟ اين كار را پيگيري كنم يا بي خيال آن شوم ؟ ببخشيد مزاحم شما شدم . معمولا مراجع پاسخها را به صورت شرطي ميدهند ( اگر ... آنگاه ... ) كه تشخيص اين اگرها خودش داستاني دارد و معمولا سخت . با تشكر و آرزوي موفقيت براي شما ممنون ميشوم نظر شما را بدانم .
يكشنبه ۶ مهر ۹۳ - ۶:۵۰ صبح
پاسخ: مي‌دانيد چرا به صورت شرطي پاسخ مي‌دهند؟ زيرا «موضوع‌شناسي» را بر عهده مكلف مي‌دانند كه يا خود تشخيص دهد و يا از كارشناسان خبره تحقيق نمايد. مبناي فقهاي شيعه در مسلك فقهي مقبول همين است كه وظيفه مجتهد را به «حكم‌شناسي» محدود مي‌داند. درباره اين‌كه گوگل يك شركت آمريكايي‌ست يا خير، آن‌چه بنده شنيده‌ام آمريكايي محسوب نمودن آن است. اما بنده از حقيقت و كنه ماجرا مطلع نيستم. مي‌گويند گوگل بر اساس ايده دو دانشجوي آمريكايي شروع شد و دفتر اصلي شركت‌شان نيز در كاليفرنياست. اطلاعات حقير نيز منحصر به همان‌چيزهايي است كه در اينترنت نوشته است. ولي يك نكته را به عنوان نظر شخصي عرض مي‌نمايم: اصلاً كسب درآمد از طريق همكاري با شركت‌هاي خارجي را از خاطر ببريد. زيرا آن‌ها به شدت در اين موارد استعماري عمل مي‌نمايند. يعني خيلي بيش از آن‌كه به شما منفعت برسانند خود منفعت مي‌برند. اصلاً انصاف در اين امور به كار نمي‌گيرند. نمي‌دانم آيا پاسخي داريم كه براي منفعت ناچيز خود، منفعت سرشاري به جيب آن‌ها بريزيم يا خير. موفق باشيد.
مخالفت با فلسفه منظورم نيست: http://yaalee.com/forums/forum.php?f=184

لينك اشتباه درج شد چون قالب سايت شما محدوديت در پذيرش تعداد كاراكتر داشت ، لينك را اصلاح كردم
جمعه ۴ مهر ۹۳ - ۵:۴۸ عصر
پاسخ: دو مطلب در لينك‌هاي ارسالي شما جلب توجه كرد؛‌ نخست آن‌چه آيةالله‌العظمي سيستاني حفظه‌الله، فرمودند درباره فلسفه و عرفان و ديگر مصاحبه‌اي كه از آقاي مهدي نصيري منتشر شده بود. هر دو را خواندم. البته ارتباط اين دو مطلب با «فقه حكومتي» يا ساير اقسام فقه كه مطرح مي‌شود را نيافتم، ولي اگر پاسخ پرسش شما را فارغ از مطالب مذكور بخواهم عرض نمايم، به طور خلاصه مبتني بر چند مقدمه چنين مي‌شود: مفروض اول: حكومت مي‌تواند ظلم كند. مفروض دوم: تكاليف حكومت با افراد متفاوت است. مانند: تخصيص بودجه سالانه. با ضميمه اين دو فرض، حكومت مي‌تواند بدون اين‌:كه متوليّان آن بي‌نماز باشند، با اختصاص نادرست بودجه كشور، سبب فقر بعضي و ثروت بادآورده گروهي ديگر شوند، به نحوي كه ظالمانه باشد. اگر اين دو فرض را بپذيريم، البته اگر، آن‌گاه با ورود فرض سوم: اسلام دين جامعي‌ست و براي نفي تمامي مصاديق ظلم، حكم دارد. ناگزير مي‌شويم قبول كنيم كه اسلام بايد براي تكاليف حكومت، مانند: تخصيص بودجه، نيز حكم داشته باشد. اين يك استدلال ساده براي يكي از تعاريفي‌ست كه براي فقه حكومتي شده است. زيرا تعاريف ديگري نيز براي فقه حكومتي تا به حال ارائه شده است. پاره‌اي از ساير نظريات در اين نمودار http://rastan.parsiblog.com/Posts/283 و نمودار http://rastan.parsiblog.com/Posts/276 ارائه شده است.
مخالفت با فلسفه منظورم نيست: نظرات شما در مورد سيد منير الدين و وجود فقه حكومتي و فقه اقتصادي و غيره ديدم، نظرتان در مورد نظرات طرف مقابل چيست ؟ (در مورد مخالفت با فلسفه و مكتب تفكيك نظري ندارم و كاري هم به مخالفان فلسفه ندارم) بلكه بخش مربوط به وجود يا عدم اصل فقه حكومتي و فقه اقتصادي و غيره مورد نظرم است لينك ها را ببينيد
جمعه ۴ مهر ۹۳ - ۵:۴۶ عصر
پاسخ: لينك ارسالي شما به صفحه‌اي اشاره كرد كه چنين عنواني دارد: رابطه فقه و اصول فقه با مكتب تفكيك. سه مطلب در اين تاپيك موجود است. إن‌شاءالله در اولين فرصت اين سه مطلب را مطالعه خواهم نمود. تشكر
يارآشنا: منتظر شما هستيم
سه‌شنبه ۱ مهر ۹۳ - ۱۲:۲۲ عصر
پاسخ: ولي لينكي كه گذاشتيد كار نمي‌كند كه!
ارسال نظر به وبلاگها:

سلام دوست عزيز.

وبلاگتو ديدم از چند تا از مطالبت خوشم اومد عالي بود.

خوشحال ميشم به سايت من هم سر بزني.

پنج‌شنبه ۲۷ شهريور ۹۳ - ۱:۰۱ عصر
پاسخ: دروغ مي‌"گويي و اين خيلي بد است. وبلاگ مرا نخوانده‌اي، از مطالبم نيز خوشت نيامده است. اين‌جا هم اصلاً نيامده‌اي و هرگز هم نخواهي آمد. اين پاسخ بنده را هم هرگز نخواهي ديد. ولي متأسفم كه به خاطر تبليغ سايت خودت، حاضر شدي به اين سايت‌هاي زرد پول بدهي و چنين دروغي بگويي. چرا دروغ؟ خب راست بگو، بنويس كه ما يك سايتي داريم و شما را به آن دعوت مي‌نماييم. صادقانه و دوستانه. ننويس: وبلاگتو ديدم. اين مي‌شود دروغ و دروغ مگر از گناهان كبيره نيست؟! ايمان خودمان را به يك تبليغ ساده بفروشيم؟! اين درست است؟ از مؤمن چنين سر مي‌زند؟!
بازگشتنسخه محلّي از نوشته‌هاي وبلاگ شايد سخن حق سال نشر14نوشته‌هاي وبلاگ بر اساس سال برچسب‌ها33نوشته‌هاي وبلاگ بر اساس برچسب بيشترين نظر33نوشته‌هاي وبلاگ با بيشترين تعداد نظر
صفحه اصليبازگشت به صفحه نخست سايت نوشته‌ها776طرح‌ها، برنامه‌ها و نوشته‌ها مكان‌ها68براي چه جاهايي نوشتم زمان‌ها23همه سال‌هايي كه نوشتم جستجودستيابي به نوشته‌ها از طريق جستجو وبلاگ1064با استفاده از سامانه پارسي‌بلاگ نماها2چند فيلم كوتاه از فعاليت‌ها آواها9تعدادي فايل صوتي براي شنيدن سايت‌ها23معرفي سايت‌هاي طراحي شده نرم‌افزارها36سورس نرم‌افزارهاي خودم معرفي6معرفي طراح سايت و آثار و سوابق كاري او فونت‌هاي فارسي60تعدادي قلم فارسي كه معمولاً در نوشته‌هايم استفاده شده است بايگاني وبلاگ1052نسخه محلّي از نوشته‌هاي وبلاگ
با اسكن باركد صفحه را باز كنيد
تماس پيامك ايميل ذخيره
®Movashah ©2018 - I.R.IRAN