PDA

View Full Version : سوال: ایجاد وب سرویس برای گرفتن اطلاعات سرور و انتقال به اکسل



حسین نیک پور
دوشنبه 13 آذر 1396, 17:22 عصر
سلام
دوستان ما برای ساخت گزارشات داریم از اکسل (پاور ویو) استفاده میکنیم.
من میخوام یه وب سرویس بنویسم که توش اطلاعات رو از دیتا بیس بگیرم و یه سری تغییرات رو روش انجام بدم و برگردونم. نوشتن این وب سرویس خیلی ساده هست.
حالا سوال من این هست که نمیدونم این وب سرویس رو چه جوری بنویسم که بتونم از توی اکسل یا پاور ویو صداش کنم؟ انگار بهترین حالتی که اکسل میتونه اطلاعات رو بگیره oData feed هست!

دوستان کسی تجربه ای تو این زمینه داره؟

parvizwpf
سه شنبه 14 آذر 1396, 13:56 عصر
من دقیقا سوال شما رو نفهمیدم .منظور اینه که چطور فایل اکسل رو به سرویس بفرستید؟ یا چطور در سرویس کار بر روی فایل اکسل انجام بدید؟

حسین نیک پور
یک شنبه 19 آذر 1396, 13:25 عصر
وقت به خیر
مشکل من اینه که وقتی یه وب سرویس درست میکنم از توی پاور پیوت نمیتونم بهش وصل بشم (از طریق oData Feed)!
نمیدونم خروجی متد وب سرویسم چی باید باشه که پاور پیوت بتونه دیتا رو بگیره

parvizwpf
یک شنبه 19 آذر 1396, 13:44 عصر
شرمنده مجددا نفهمیدم

حسین نیک پور
یک شنبه 19 آذر 1396, 15:26 عصر
ضمن تشکر از شما
شاید بهتر باشه سوالم رو یه جور دیگه بپرسم
ببینید من یه وب سرویس درست کردم (web method)که میره از دیتابیس و جاهای مختلف اطلاعات رو میگیره و پردازش میکنه و در نهایت دیتا رو به صورت یه لیستی از ابجکت ها بر میگردونه (یعنی خروجی وب سرویس من یه لیست از ابجت ها هست) .
حالا میرم توی اکسل توی قسمت پاور پیوت از منوی دیتا قسمت oDataFeed رو انتخاب میکنم ، یه ادرس میخواد که توی اون آدرس وب سرویس ام میزنم.
متاسفانه این جا به ارور میخورم .
نمیدونم ساختار اطلاعاتی که باید از سمت سرور بیاد به چه شکل و با چه فرمتی باید باشه ؟
یعنی یه لیست از ابجکت ها خروجی مناسبی برای این کار هست یا باید تبدیل بشه به یه فرمت دیگه. یا اصلا راهی که بتونم این کار رو انجام بدم . شاید جای دیگه ای دارم اشتباه میکنم

Tekyegah
یک شنبه 19 آذر 1396, 19:18 عصر
من هم متوجه نشدم !

در واقع شما میخواین از برنامه اکسل ، یه وب سرویس رو صدا بزنید .

بعد اون وب سرویس دیتا هایی رو از sql خودش بخونه و data رو بفرسته سمت برنامه اکسل . بعد اکسل اون فیلد ها رو توی sheet خودش قرار بده ؟!

حسین نیک پور
دوشنبه 20 آذر 1396, 17:53 عصر
بله درسته .
ولی نمیدونم دیتا رو با چه فرمتی باید بفرستم که از توی اکسل بتونم بگیرمش.

Tekyegah
دوشنبه 20 آذر 1396, 20:14 عصر
شرمنده من روی این بخش کار نکردم و اطلاعاتی ندارم .

parvizwpf
سه شنبه 21 آذر 1396, 20:39 عصر
شما از توی اکسل که نمیتونید برید سراغ سرویس. شما در درون سرویس می بایست فایل اکسل رو بخونید یا توش چیزی بنویسید در سی شارپ بهترین گزینه هم EPPLUS هست

Tekyegah
سه شنبه 21 آذر 1396, 23:34 عصر
چقدر بده آدم به یه سوالی بر بخوره و کنجکاو شه و هیچی هم ندونه ( سوال کننده از خودن بیشتر بدونه )

هی دست و پا میزنی و سوال رو میخونی و بیشتر کنجکاو میشی ... شده الان جریان من !

از قدیم گفتن ماکروسافت نرم افزار user friendly هست ... خدا خیرشون بده ... هیچی هم ندونی با یه خورده کلیک کردن میفهمی باید چیکار کنی !!!

من یه فایل HTML ساختم به این شکل :

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td>test1</td>
<td>test2</td>
<td>test3</td>
</tr>
<tr>
<td>test4</td>
<td>test55</td>
<td>test7</td>
</tr>
</table>
</body>
</html>



بعد رفتم تو سربرگ Data ... از قسمت From Web ... آدرس فایل رو زدم ( آدرس : http://upload-free.ir/exl.html )

بعد خودش table رو آورد گذاشت توی Cell ها ... :قهقهه: خیلی هم ذوق کردم .

بعد رفتم دیتا فایل html رو تغییر دادم ... اومدم فایل excel رو باز کردم دیدم تغییر نکرد ... رفتم تو سربرگ Data گزینه refresh All رو زدم ... دیدم دیتاها تغییر کرد و دیتا جدید گذاشت .

خلاصه از اکتشافات امروز خودم خیلی خوشحالم ...

Tekyegah
چهارشنبه 22 آذر 1396, 00:33 صبح
سلام مجدد

شما web service رو میتونید اینطوری هم صدا بزنید : تو قسمت فورمول excel بنویسید :


=WEBSERVICE("https://api.telegram.org/bot482554744:AAF2WEjHxdl9R48MkLjgqfok_pPypz0srIw/sendMessage?chat_id=-1001185621102&text=TEST&parse_mode=HTML")

حالا چون وب سرویسی نداشتم از telegram استفاده کردم !

با این کار Data از نوع json برگشت داده میشه !

از این مطلب اینو تست کردم :
https://blogs.office.com/en-us/2013/03/21/use-webservice-functions-to-automatically-update-excel-2013-spreadsheets-with-online-data/?eu=true

parvizwpf
چهارشنبه 22 آذر 1396, 09:29 صبح
بسیار هم عالی

Hootyhb
چهارشنبه 12 بهمن 1401, 10:46 صبح
با سلام، ببخشید منم همچین حالتی رو میخوام راه بندازم برای نرم افزار حسابداری که خروجی و ورودیش اکسله منتها نمیخوام از شرکت سازنده وب سرویس بگیرم و میخوام اپراتور در نرم افزار حسابداری به پوشه ای خاص خروجی اکسل بگیره و هرسری خروجی ها با پوشه سایت رو اپدیت کنن و بالعکس ورودی هایی که با کمک افزونه از سایت میان با روی سایت ووردپرسی هستن، ساینک بشن

در واقع میخوایم وب سرویس و افزونه مستقل از نرم افزار اصلی باشه و فقط اکسل ها رو بشناسه و خودمون یک وب سرویس راه بندازیم(مثلا با کمک همون تلگرام یا ...)
در ضمن مشخصه که بنده آماتورم و دارم از شما عزیزان کمک و راهنمایی میگیرم حتی اگر بشه به خودتم زحمت کار رو بدم😄