PDA

View Full Version : مناسبب ترین روش جهت خواندن اطلاعات از فایل اکسل



MMR_1234
شنبه 12 خرداد 1397, 00:55 صبح
با سلام
در فایل اکسل اطلاعاتی به شکل زیر وجود داره
شماره ردیف شماره صورت مجلس مقدار
من میخوام یا خواندن اطلاعات و مرتب کردن اون بر اساس شماره ردیف مقادیر کار انجام شده در هر ردیف رو جمع کنم و با اعمال کارهای مورد نظر مبلغ رو بدست بیارم

دو روش برای اانجامش به نظرم میرسه
روش اول خواندن اطلاعات و ثبت اونها بر اساس ردیف مورد نظر در یک فایل اکسس و جمع نمودن مقادیر هم ردیف که به دلیل زیاد بودن تعداد ردیفهای موجود فکر میکنم زمان زیادی رو لازم داشته باشه
روش دوم جستجوی اطلاعات بر اساس یک ردیف معین و جمع مقادیر اون ردیف و انجام کارهای مورد نظر بر ردیف مربوطه و ثبت اون در جدول جداگانه

ممنون میشم راهنمائی کنید کدوم روش بهینه تر هست تا با اون روش کار رو شروع کنم

همچنین میخواستم بدونم اگر اطلاعات رو در فایل اس کیو ال ثبت کنم انجام کار راختتر میشه یا در فایل اکسس

از لطف همگی سپاسگذارم

danialafshari
شنبه 12 خرداد 1397, 01:16 صبح
با سلام
لطفاً قبل از ایجاد تاپیک جستجو کنید
توی تاپیک های مختلفی در رابطه با ارتباط با اکسل سوال پرسیده شده و به جواب رسیده و شما میتونید با فایل اکسل شبیه فایل اکسس برخورد کنید و میتونید توی همین سایت روشش رو جستجو کنید
http://barnamenevis.org/showthread.php?545637-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D9%81%D8%A7%DB%8C%D9%84-%D8%A7%DA%A9%D8%B3%D9%84-%D9%88-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%A7%D9%86-%D8%AF%D8%B1-sql-server
http://csharp.net-informations.com/datagridview/files/src/csharp-datagridview-load-excel.txt
اگر فایلتون اکسل هست بهتره با نرم افزارهای Converter که زیاد توی اینترنت وجود داره یکبار و برای همیشه فایلتون رو به اکسس تبدیل کنید و دیگه با فایل اکسس کار کنید(به این دلیل که اکسس یک DBMS) هست
حالا انتخاب بین اکسس و SqlServer بستگی به حجم اطلاعات نرم افزارت و کارکردش (شبکه و...) هست و ظاهراً چون اکسل قبلاً جوابگو بوده فکر میکنم بهتره از Access استفاده کنید
موفق باشید

MMR_1234
شنبه 12 خرداد 1397, 21:03 عصر
با تشکر فراوان
از پاسخی که دادید بسیار سپاسگذارم اما منظور من برگردوندن اطلاعات نبود چون برای اون راه حلهای زیادی وجود داره
اما از لطفی که کردیدن بی نهایت تشکر میکنم
منظور من اینه که من این اطلاعات که شامل شماره ردیف هر کار و شماره صورت مجلس انجام اون کار و مقدار کار انجام شده رو دارم بدین صورت که در طی یک ماه شاید سی صورت مجلس برای استفاده از میل مهار وجود داشته باشه و انها درون این فایل ذخیره کنن
میخوام اینکار رو بکنم که تمام ردیفهای مربوط به میل مهار رو با هم جمع کنم و مقدار اون رو در پایان هر ماه داشته باشم البته این موضوع رو هم بگم که جدول بصورت تجمعی است و از شروع کار تمام اطلاعات درون اون منظور شده و هر بار بصورت تجمعی اطلاعات رو نشون میده
امیدوارم تونسته باشم موارد رو کامل توضیح داده باشم
به هر حال از محبت شما کمال تشکر رو دارم

danialafshari
یک شنبه 13 خرداد 1397, 06:15 صبح
با سلام
اونطور که متوجه شدم شما یک جدول دارید به شکل زیر
ردیف شماره صورت جلسه تعداد



1
میل مهار (کار به شماره نداریم)
12


2
میل مهار
3


3
داربست
2



و بعد میخواین به این شکل باشه:


میل مهار
15


داربست
2



اول باید بگم که اطلاعات تجمعی این جدول اصلاً اصولی نیست و باید از هم جدا شود و حدافل به دو جدول (قطعه - انبار(ورودی)) تبدیل شود، به شدت توصیه میکنم که اگر امکانش هست اطلاعات رو جدا کنید،بعد از اینکه فایل اکسل به دیتابیس تبدیل شد شما میتونید توسط کوئری جداسازی رو انجام و در جدول مربوطه وارد کنید
البته بگم فکر میکنم چنین کاری با کد TSql هم بشه که الان خاطرم نیست
از اینجا به بعدش سوالتون بیشتر جنبه طراحی بانک اطلاعاتی و بیشتر TSql هست که بهتر هست توی بخش مربوطه مطرح کنید
موفق باشید

MMR_1234
دوشنبه 14 خرداد 1397, 02:27 صبح
با تشکر مجدد
و عدر خواهی به دلیل کامل نبودن اطلاعات
فایل اکسل اصلی من بدین صورت هست
510203001 IPC-E-096-1001 ر12
510203001 IPC-E-096-1005 ر24
ببخشید حرف «ر» رو برای این گذاشتم که درست نوشته بشه
این اطلاعات بر اساس صورت مجالسی که بصورت روزانه در کارگاه تنظیم میشه ارسال و در فایل من ذخیره میشه. در شیت دوم با استفاده از یک کوئری ساده میتونم این اطلاعات رو بر اساس کد ستون اول و کد ستون دوم مطابق شکل زیر مرتب کنم
510203001 36
IPC-E-096-1001 ر12
IPC-E-096-1005 ر24
با این روش میشه برای مثلا ردیف مورد نظر هم جمع مقدار رو و هم مقادیر موجود در هر صورت مجالس رو کنترل نمود


انی روش برای مقادیر کم خیلی خوبه اما چون تعداد ردیفهائی که وجود داره زیاد هست و تعداد روزهای کاری هم مقدار اطلاعات رو افزایش میده برنامه با مشکل تعداد سطر روبرو میشه
من میخوام این اطلاعات رو در برنامه ای که خودم مینویسم از یک فایل (اکسل، اکسس، اس کیو ال) بخونم و همین کاری که برنامه اکسل انجام میده رو انجام بدم و بتونم شیت دوم رو که اکسل ساخته من در برنامه ایحاد کنم

برای کنترل دیگر قسمتها وجود ریز کارها و صورت مجالس بسیار الزامی است
با سپاس فراوان

MMR_1234
دوشنبه 14 خرداد 1397, 04:18 صبح
نمونه فایل رو برای بهتر بیان کردن موضوع قراردادم
با تشکر

البته قابل ذکر اطلاعاتی که من وارد میکنم شامل شماره صورت محلس، شماره ردیف و مقدار هست بقیه اتومات قرار میگیره

Mahmoud.Afrad
پنج شنبه 17 خرداد 1397, 08:40 صبح
اگر درست متوجه شده باشم ، در sql با یک گروهبندی و محاسبه مجموع کار انجام میشه.
https://docs.microsoft.com/en-us/sql/t-sql/functions/sum-transact-sql?view=sql-server-2017#examples-includesssdwfullincludessssdwfull-mdmd-and-includesspdwincludessspdw-mdmd



اگر بتونید همه داده های مورد نیاز رو در حافظه لود کنید و مشکلی در کمبود حافظه نداشته باشید، میتونید از LinqToObject استفاده کنید. در اینصورت نیازی به تبدیل فایل اکسل به اکسس یا ... نیست.