גינגית פורסם 2020 בספטמבר 29 Share פורסם 2020 בספטמבר 29 יש לי קוד פייתון שמקבל מספר ומחזיר אותו כמחרוזת במילים (לדוגמא 123 מחזיר "מאה עשרים ושלוש") אני רוצה להפוך את זה לפונקציה באקסל (זה דבר שקיים אבל לא בעברית) ראיתי בהרבה מקומות הסברים איך לעשות את זה, אבל איכשהו לא הצלחתי (אני אפילו לא סיימתי עדיין את הלימודים, ככה שאני צריכה הסברים יותר מפורטים ממה שיש ברוב המקומות) מישהו יכול לעזור לי בזה? ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בספטמבר 29 Share פורסם 2020 בספטמבר 29 xlwings זו ספרייה מצויינת לנושא. תתקין אותה: pip install xlwings עכשיו, צריך להתקין את התוסף שלו: תוריד מhttps://github.com/xlwings/xlwings/releases את קובץ הxlam האחרון, תיכנס לכרטיסייה Developer (מפתחים). אם אין לך אותה, תפתח File (קובץ) -> Options (אפשרויות) -> Customize Ribbon (התאמה אישית של רצועת הכלים) -> ותסמן בצג השמאלי (או הימני, בעברית) את Developer (מפתחים). אתה יכול לבטל את זה אח"כ אם אתה רוצה. אז תיגש לDeveloper (מפתחים) -> Excel Add-ins (תוספות Excel?) -> ותלחץ Browse (עיון). תבחר את הקובץ xlam ותאשר. עכשיו אמורה להופיע לך ברצועת הכלים כרטיסייה xlwings. עכשיו צריך לשנות את הגדרות האבטחה: לך לFile (קובץ) -> Options (אפשרויות) -> Trust Center (מרכז האישורים? הטאב האחרון) -> Trust Center Settings (הגדרות מרכז האישורים) -> Macro Settings (הגדרות מאקרו) ותסמן את Trust access to the VBA object module (אפשר גישה למודל האובייקטים של VBA? האפשרות האחרונה). תאשר. פתח שורת פקודה ותקליד: xlwings quickstart first בתיקייה שנוצרה, בקובץ הפייתון, תקליד לדוגמה (אתה יכול למחוק את הפונקצייה hello אבל לא משהו אחר!): @xw.func @xw.arg('x', numbers=int) def square_me(x): return x ** 2 הסינטקס מתועד במלואו בתיעוד: https://docs.xlwings.org/en/stable/udfs.html (ר"ת של UDF זה User-Defined Function, זה המונח באקסל). תפתח את הקובץ xlsm, תעבור לכרטיסייה xlwings ותלחץ על Import Functions. עכשיו אתה יכול להשתמש בפונקציה SQUARE_ME בהצלחה! 1 ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
גינגית פורסם 2020 בספטמבר 30 מחבר Share פורסם 2020 בספטמבר 30 קודם כל תודה! תשובה מפורטת ומושקעת.... אבל כמה שזה מביך להודות בזה, אני אפילו עוד לא ממש יודעת איך להשתמש בשורת הפקודה, וכשאתה כותב לי להקליד pip install xlwings אני לא ממש יודעת איפה להקליד את זה ניסיתי להקליד ככה: C:\Users\User\AppData\Local\Programs\Python\Python38-32\Scripts>pip install xlwings וקיבלתי הודעה כזאת: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)'))': /simple/xlwings/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)'))': /simple/xlwings/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)'))': /simple/xlwings/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)'))': /simple/xlwings/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)'))': /simple/xlwings/ Could not fetch URL https://pypi.org/simple/xlwings/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/xlwings/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)'))) - skipping ERROR: Could not find a version that satisfies the requirement xlwings (from versions: none) ERROR: No matching distribution found for xlwings Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)'))) - skipping C:\Users\User\AppData\Local\Programs\Python\Python38-32\Scripts> מה זה אומר? ומה אני צריכה לעשות עם זה? תודה ושוב סליחה על הבורות.... ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בספטמבר 30 Share פורסם 2020 בספטמבר 30 הקלדת במקום הנכון השגיאה אומרת שתעודת הSSL לא תקינה. את משתמשת ברימון, אתרוג או משהו גומה? 1 ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
גינגית פורסם 2020 בספטמבר 30 מחבר Share פורסם 2020 בספטמבר 30 האמת היא שחשדתי שזה קשור לזה... אני משתמשת בנט פרי יש לך מושג כלשהו איך מתמודדים איתם בעניין הזה? למרות שעכשיו זה סתם בשביל הסקרנות - כי המטרה שלי שהייתה להוסיף לאקסל פונקציה של כתיבת מספרים במילים עבריות - הושגה😜😜 בסוף מצאתי באיזה מקום פונקציה שעושה את זה באנגלית, שיניתי אותה כך שתתאים לעברית (הבעייה העיקרית שלי הייתה שמעולם לא התעסקתי עם visual basic, ככה שעבדתי בדרך של ניסוי ותעייה) וזה עבד!!!!!!!!!!!!! אני לא בטוחה שאני עובדת נכון ויעיל עם כל הסיפור של MOUDELS באקסל, אבל העיקר הוא שזה עובד!!!! (הכנתי קובץ עם הדרכה למשתמש פשוט איך להוסיף את הפונקציה לחוברת העבודה שלו, אם יש מישהו שמבין בזה אני יכולה להעלות את זה כדי שתגידו לי אם אני באמת עובדת עם זה נכון, ואני יכולה גם להעלות את זה סתם ככה אם זה מעניין מישהו...) תודה על כל העזרה!! ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בספטמבר 30 Share פורסם 2020 בספטמבר 30 כל הכבוד! את יכולה להעלות, אם אמצא את הזמן אעבור על זה אי"ה לגבי פיתרון: הדרך הכי פשוטה היא לכבות את בדיקת הSSL (לעולם אל תעשי את זה בסביבות פרודקשן): pip install xlwings config --global http.sslVerify false אם את רוצה להעמיק, תחפשי בגוגל "Windows export SSL certificates to PIP". 1 ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
גינגית פורסם 2020 בספטמבר 30 מחבר Share פורסם 2020 בספטמבר 30 (נערך) ecxelFunc.zip היי צרפתי לכאן קודם כל את הקוד שכתבתי בפייתון, וגם את הקובץ שהכנתי בסוף ב VBA (ההוראות מיועדות למשתמשים פשוטים ולא למתכנתים, ככה שזה לא ח"ו זלזול באינטליגנציה שלכם...) ואגב - לא נעים לי לצאת כל כך בורה אבל אני סך הכל סטודנטית אז תסלחו לי - מה זה סביבת פרודקשן? קוד לכתיבת מספר במילים בעברית ב excel - הוראות.docx נערך 2020 בספטמבר 30 על-ידי גינגית עדכון קובץ שהועלה ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 בספטמבר 30 Share פורסם 2020 בספטמבר 30 (נערך) תרגישי בנוח - פרודקשן זה הדבר שסטודנטים לא מתעסקים איתו - קוד שרץ "על אמת", לא אצל המפתח. אחת היכולות החשובות לפתח כמתכנת היא היכולת למצוא ולהשתמש בספריות שאחרים כתבו. לפייתון יש כמות אדירה של ספריות (שנייה רק לjs), וכיוון שהתעסקתי בנושא פעם אני יכול להגיד שיש ספרייה מצויינת https://pypi.org/project/num2words/. כן, היא תומכת גם בעברית. וגם בדנית, אם תרצי (או מיליון ואחת שפות אחרות). כך שאת הקוד שלך הייתי מקצר ל: from num2words import num2words while True: number = input("הכנס מספר, לסיום הקש סולמית.\n") if number == "#": break print(num2words(int(number), lang="he")) מספר הבדלים נוספים ושינויים שביצעתי: שיניתי את x לnumber. שמות משמעותיים, מישהו אמר? החלפתי את התנאי הכפול בbreak (מה שנקרא loop-with-exit). יש מתכנתים שלא מרגישים עם זה בנוח, וזה בסדר. אם המרצה שלך יתלונן (הוא כן), תשאלי אותו כמה תוכנות real-world הוא פיתח/השתתף בפיתוחן. הפונקציה input מקבלת מחרוזת להצגה לפני הקלט. ההבדל בינה לבין print הוא שinput לא מדפיסה ירידת שורה, אז הוספתי \n. inline-תי את ההמרה של number למספר. יש מתכנתים שלא יאהבו את זה ושוב, זה בסדר. עטפת את ההמרה בסוגריים (כלומר כתבת (int)(x)). אני יכול לנחש מזה שאת מתכנתת (או לפחות למדת באוניברסיטה) C. אני גם מנחש שניסית בהתחלה (int(x, אבל לא עבד לך אז עטפת את x בסוגריים. אולי חבל (ממש לא!!), אבל פייתון היא לא C. אין דבר כזה המרה, וint היא בכלל פונקציה (למעשה, גם בC ניסיון להמיר בין מחרוזת למספר לא עובד ככה אלא ע"י קריאה לפונקציה). זה עבד פשוט כי (int) זהה בדיוק לint. בסה"כ, חמש שורות קוד במקום 74. לא רע נערך 2020 בספטמבר 30 על-ידי af db creid ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
גינגית פורסם 2020 באוקטובר 1 מחבר Share פורסם 2020 באוקטובר 1 באמת לא רע....😀 אבל זה לא שלא צריך את השורות האלו, פשוט מישהו אחר כתב לך אותן😉 בכל אופן, באמת הגיע הזמן שאני אלמד להשתמש בספריות.... אני חושבת שזה מה שאמורים ללמד אותנו עכשיו (בינתיים היה לי רק שיעור אחד של פייתון, עד עכשיו עבדתי עם JAVA ו C# (זיהוי כמעט מדוייק....), ככה שהייתי צריכה הרבה יצירתיות כדי להמיר את הסינטקס המוכר לי לסינטקס של פייתון) ואגב, ראית את מה שכתבתי בסופו של דבר לאקסל? (קובץ הוורד) כי יש לי על זה שאלה למי שמבין ב VBA: יש לי פונקציה שמקבלת מספר, ואני רוצה שהיא תוכל לקבל ולפעול גם על מספר עשרוני אין לי מושג אפילו איפה מגדירים את זה - בחתימת הפונקציה? בהצהרה על משתנים? כמו שכבר כתבתי אני ממש לא מכירה (גם) את השפה הזאת, אז.... ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 באוקטובר 1 Share פורסם 2020 באוקטובר 1 אם את לא מוסיפה As Type לפרמטר הוא יכול להיות מכל סוג. 1 ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
גינגית פורסם 2020 באוקטובר 1 מחבר Share פורסם 2020 באוקטובר 1 תודה מושלם!! עכשיו הקוד שלי יודע להתמודד גם עם אגורות... אני רק צריכה להחליט אם לכתוב שח או שקלים (או שיש דרך לשכנע אותו להבין שזה ש"ח בלי לצאת מהמחרוזת? וככה אולי אקסל יעשה אוטומטית את הסימון של הש"ח) ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 באוקטובר 1 Share פורסם 2020 באוקטובר 1 (נערך) את יודעת שיש כפתור "תודה", לא רק "אהבתי"? נראה לי קצת לא קשור... לגבי הש"ח, צדקת: את צריכה פשוט לעצב את התא כמטבע (בכרטיסייה "בית", בקבוצה "מספר", ברשימה הנפתחת בחרי "מטבע". זה הכי פשוט). ואז את מקבלת את כל יכולות העיצוב המדהימות של אקסל למספרים: מפרידי אלפים, יצוג מספרים שליליים, עיצוב מותנה... נערך 2020 באוקטובר 1 על-ידי af db creid ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
גינגית פורסם 2020 באוקטובר 1 מחבר Share פורסם 2020 באוקטובר 1 שיניתי הכל לתודה... ובקשר לש"ח - אני לא רוצה להוסיף ש"ח לתא של המספר, אלא בתא שבתוכו נכתב המספר במילים (בעזרת הפונקציה...) ייכתב לדוגמא עבור 345 - שלוש מאות ארבעים וחמישה ש"ח בינתיים זה שקלים - וזאת השאלה שלי: האם יש דרך לכתוב במקום שקלים את הסימון של הש"ח example for num2word function.zip זה מיועד להדפסת צקים אוטומטית, והניסוחים בהתאם.... ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
af db creid פורסם 2020 באוקטובר 1 Share פורסם 2020 באוקטובר 1 פשוט תעתיקי את הסימן מאיפשהו ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
גינגית פורסם 2020 באוקטובר 1 מחבר Share פורסם 2020 באוקטובר 1 אני מקווה שזה עדיין בסדר שאני אגיד שאני כתבתי את הקוד הזה... ציטוט קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
הצטרפ/י לדיון
בשלב זה תוכל/י להצטרף לדיון, ולאחר מכן להצטרף לקהילה שלנו. אם כבר יש לך חשבון אצלנו, אנא התחבר/י עכשיו על מנת להגיב תחת שם המשתמש שלך.
לתשומת לבך: התגובה תופיע לגולשים לאחר אישור של צוות הנהלת הפורומים.