דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. להשתמש בקובץ אקסל עם נוסחאות כAPI

להשתמש בקובץ אקסל עם נוסחאות כAPI

מתוזמן נעוץ נעול הועבר תכנות
19 פוסטים 4 כותבים 448 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • D מנותק
    D מנותק
    davidnead
    השיב לyossiz ב נערך לאחרונה על ידי
    #5

    @yossiz אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

    @davidnead אפשר להריץ אקסל ברקע ולשלוט עליו באמצעות כל שפה שתומכת באוטומציה דרך OLE Automation.
    אולי תוכל לעשות את זה מ-JS דרך ספרייה זו: https://www.npmjs.com/package/win32ole
    (הדוגמה ב-README הוא על אקסל)

    נשמע כיוון טוב, אבל נראה שזה מתאים רק לwin32

    D תגובה 1 תגובה אחרונה
    1
    • D מנותק
      D מנותק
      davidnead
      השיב לdavidnead ב נערך לאחרונה על ידי davidnead
      #6

      האם זה יכול לעזור לי?
      אם אני מבין נכון מדובר בסוג של תוסף שמאפשר לעבוד עם JS מתוך האקסל כמו סוג של תחליף לVBA ולא להתממשק מבחוץ.

      תגובה 1 תגובה אחרונה
      1
      • אפר שריפהא מנותק
        אפר שריפהא מנותק
        אפר שריפה
        השיב לdavidnead ב נערך לאחרונה על ידי
        #7

        @davidnead אולי תשתמש באקסל אונליין או שיטס בשביל זה

        D תגובה 1 תגובה אחרונה
        1
        • D מנותק
          D מנותק
          davidnead
          השיב לאפר שריפה ב נערך לאחרונה על ידי
          #8

          @אפר-שריפה אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

          @davidnead אולי תשתמש באקסל אונליין או שיטס בשביל זה

          שיטס - זה גדול עליו. אקסל אונליין, לא מכיר. ואיך זה יכול לעזור? יש להם API?

          WWWW תגובה 1 תגובה אחרונה
          0
          • D מנותק
            D מנותק
            davidnead
            כתב ב נערך לאחרונה על ידי
            #9

            עלה בדעתי רעיון, גרוע אמנם אבל אמור להשיג את התוצאה. במקרה שלי זה יכול להספיק. להשאיר את הקובץ אקסל פתוח ולהפעיל מהVBA שרת שיקשיב לקריאות מבחוץ ויתן תשובות. ראיתי קצת ברשת שזה אפשרי, רק שבשביל רמת הידע שלי בVBA זה נראה אתגר רציני.

            yossizY תגובה 1 תגובה אחרונה
            0
            • WWWW מנותק
              WWWW מנותק
              WWW
              השיב לdavidnead ב נערך לאחרונה על ידי
              #10

              @davidnead אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

              שיטס - זה גדול עליו.

              מה הכוונה?

              @davidnead אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

              עלה בדעתי רעיון, גרוע אמנם אבל אמור להשיג את התוצאה. במקרה שלי זה יכול להספיק. להשאיר את הקובץ אקסל פתוח ולהפעיל מהVBA שרת שיקשיב לקריאות מבחוץ ויתן תשובות. ראיתי קצת ברשת שזה אפשרי, רק שבשביל רמת הידע שלי בVBA זה נראה אתגר רציני.

              אם כבר, אז בשיטס עם סקריפט, ייתכן שזה יכול לרוץ בענן.

              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

              D תגובה 1 תגובה אחרונה
              0
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לdavidnead ב נערך לאחרונה על ידי
                #11

                @davidnead אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

                עלה בדעתי רעיון, גרוע אמנם אבל אמור להשיג את התוצאה. במקרה שלי זה יכול להספיק. להשאיר את הקובץ אקסל פתוח ולהפעיל מהVBA שרת שיקשיב לקריאות מבחוץ ויתן תשובות. ראיתי קצת ברשת שזה אפשרי, רק שבשביל רמת הידע שלי בVBA זה נראה אתגר רציני.

                כלומר ווינדוס? אם כן מה לא טוב ברעיון שלי?

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                D תגובה 1 תגובה אחרונה
                0
                • D מנותק
                  D מנותק
                  davidnead
                  השיב לyossiz ב נערך לאחרונה על ידי
                  #12

                  @yossiz ככל שהבנתי הספריה ההיא לא תומכת ב64 סיביות.

                  yossizY תגובה 1 תגובה אחרונה
                  0
                  • D מנותק
                    D מנותק
                    davidnead
                    השיב לWWW ב נערך לאחרונה על ידי
                    #13

                    @www אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

                    @davidnead אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

                    שיטס - זה גדול עליו.

                    מה הכוונה?

                    @davidnead אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

                    עלה בדעתי רעיון, גרוע אמנם אבל אמור להשיג את התוצאה. במקרה שלי זה יכול להספיק. להשאיר את הקובץ אקסל פתוח ולהפעיל מהVBA שרת שיקשיב לקריאות מבחוץ ויתן תשובות. ראיתי קצת ברשת שזה אפשרי, רק שבשביל רמת הידע שלי בVBA זה נראה אתגר רציני.

                    אם כבר, אז בשיטס עם סקריפט, ייתכן שזה יכול לרוץ בענן.

                    מדוב בקובץ אקסל קיים, מאוד מאוד מורכב. עושה עבודה שלא מביישת שום ספריה בNPM (למעשה יש שם כמה ספריות שעושות עבודה דומה, חלקית לפחות). הוא משתמש בתאים בתור משתנים ובתאים שמכילים נוסחאות מתור פונקציות, קובץ ענק ומושקע מאוד. הקובץ הזה אין עיקרו נתונים אלא הוא סוג של תכנה, מקבל קלט ומחזיר קלט. הוא גם כבד מאוד (130MB). שיטס לא מצליח לפתוח אותו, וזה לא מפתיע. גם ספריות שונות שניסיתי לסוגים מסוימים של פתרונות לא הצליחו להתמודד עם הקובץ הספציפי הזה.
                    לכו נראה לי הפתרון הכי הגיוני (בהתאם למציאות הלא הגיונית...) זה להפעיל באיזו צורה את האקסל עצמו, הכיוון של @yossiz נשמע טוב אם יש לו מימושים.

                    תגובה 1 תגובה אחרונה
                    1
                    • yossizY מנותק
                      yossizY מנותק
                      yossiz
                      השיב לdavidnead ב נערך לאחרונה על ידי
                      #14

                      @davidnead לא!
                      השם win32 לא מסמל מספר הסיביות... זה שם היסטורית ל-API של ווינדוס.
                      גם 64 סיביות נתמך.

                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                      D תגובה 1 תגובה אחרונה
                      0
                      • D מנותק
                        D מנותק
                        davidnead
                        השיב לyossiz ב נערך לאחרונה על ידי
                        #15

                        @yossiz אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

                        @davidnead לא!
                        השם win32 לא מסמל מספר הסיביות... זה שם היסטורית ל-API של ווינדוס.
                        גם 64 סיביות נתמך.

                        אה, לא אמרתי את זה רק בגלל השם. אלא שבגלל שבהתקנת הספריה קיבלתי שגיאה שהיא לא מתאימה לפלטפורמה או משהו כזה. אבל אם אתה אומר שזה כן אמור לתמוך אז אנסה לבדוק יותר לעומק.

                        yossizY תגובה 1 תגובה אחרונה
                        0
                        • yossizY מנותק
                          yossizY מנותק
                          yossiz
                          השיב לdavidnead ב נערך לאחרונה על ידי yossiz
                          #16

                          @davidnead טוב, אני לא מבטיח... חשבתי שהסתמכת רק על השם... בכל מקרה שוה לבדוק. אם לא תצליח בנוד, אפשר בפייתון, PHP, או כל שפה אחרת. אפשר למצוא מימושים לאוטומציה של OLE בהמון שפות. שלא לשכוח מ-#C ושפות של ווינדוס.

                          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                          D תגובה 1 תגובה אחרונה
                          4
                          • D מנותק
                            D מנותק
                            davidnead
                            השיב לyossiz ב נערך לאחרונה על ידי
                            #17

                            @yossiz אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

                            @davidnead טוב, אני לא מבטיח... חשבתי שהסתמכת רק על השם... בכל מקרה שוה לבדוק. אם לא תצליח בנוד, אפשר בפייתון, PHP, או כל שפה אחרת. אפשר למצוא מימושים לאוטומציה של OLE בהמון שפות. שלא לשכוח מ-#C ושפות של ווינדוס.

                            אני די בור בכלים של מיקרוסופט. בגדול, הם מספקי כלי שמאפשר יצירת תוספות לאופיס שמכין לך לגמרי את כל התשתית ומשאיר לך רק לכתוב קצת JS, רק שהוא מיועד לתפעל ממשק מתוך האופיס. ככל שהבנתי מבחינה טכנית לא אמור להיות הבדל, רק שתכל'ס המימוש שלהם לא עושה את זה. תמיד אפשר לנסות לחפור בקוד שלהם...

                            בקשר לספריה שהבאת - התיעוד שם לא מי יודע מה. ככל שאני מבין כעת - השגיאה בהתקנה היא כי אין תאימות לגרסאות החדשות של NODE:

                            "engines": {
                                "node": ">= 0.8.18 && < 0.9.0"
                              },
                            

                            אם לא תהיה ברירה נלך על פייתון. (PHP זה קו אדום...)

                            D תגובה 1 תגובה אחרונה
                            0
                            • D מנותק
                              D מנותק
                              davidnead
                              השיב לdavidnead ב נערך לאחרונה על ידי
                              #18

                              @davidnead אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

                              @yossiz אמר בלהשתמש בקובץ אקסל עם נוסחאות כAPI:

                              @davidnead טוב, אני לא מבטיח... חשבתי שהסתמכת רק על השם... בכל מקרה שוה לבדוק. אם לא תצליח בנוד, אפשר בפייתון, PHP, או כל שפה אחרת. אפשר למצוא מימושים לאוטומציה של OLE בהמון שפות. שלא לשכוח מ-#C ושפות של ווינדוס.

                              אני די בור בכלים של מיקרוסופט. בגדול, הם מספקי כלי שמאפשר יצירת תוספות לאופיס שמכין לך לגמרי את כל התשתית ומשאיר לך רק לכתוב קצת JS, רק שהוא מיועד לתפעל ממשק מתוך האופיס. ככל שהבנתי מבחינה טכנית לא אמור להיות הבדל, רק שתכל'ס המימוש שלהם לא עושה את זה. תמיד אפשר לנסות לחפור בקוד שלהם...

                              בקשר לספריה שהבאת - התיעוד שם לא מי יודע מה. ככל שאני מבין כעת - השגיאה בהתקנה היא כי אין תאימות לגרסאות החדשות של NODE:

                              "engines": {
                                  "node": ">= 0.8.18 && < 0.9.0"
                                },
                              

                              אם לא תהיה ברירה נלך על פייתון. (PHP זה קו אדום...)

                              טוב, יישר כוח גדול. נמצא הפתרון:
                              https://www.npmjs.com/package/winax
                              ובבדיקה ראשונית הוא נותן תוצאה משביעת רצון, שכיוונים אחרים לא נתנו.
                              אותו הפתרון, רק ספריה עדכנית יותר. כרגיל, יוסי צודק, רק לוקח זמן להבין את זה, ובמקרה הזה גם למצוא את המימוש הנכון.

                              תגובה 1 תגובה אחרונה
                              2
                              • D מנותק
                                D מנותק
                                davidnead
                                כתב ב נערך לאחרונה על ידי davidnead
                                #19

                                והיות שאני בזבזתי יומיים כדי להגיע לתוצאה הזו, וניסיתי להעזר בהרבה אנשים בכמה פורומים (כמובן שפה היה הראשון וגם האחרון שתכל'ס עזר) - אתן אותה כשולחן ערוך למי שיבוא אחרי:

                                const winax = require("winax");
                                
                                const fileName = `...\\tst.xlsx`;
                                
                                const excel = new winax.Object("Excel.Application", { activate: true });
                                const wbk = excel.Workbooks.Add(fileName);
                                const input = wbk.Worksheets.Item(1).Range("A1");  
                                const B1 = wbk.Worksheets.Item(1).Range("B1");  
                                const output = wbk.Worksheets.Item(1).Range("C1"); 
                                
                                console.log(input.Value.valueOf()); //1
                                console.log(B1.Value.valueOf()); //2
                                console.log(output.Value.FormulaLocal); //=A1+B1
                                console.log(output.Value.valueOf()); //3
                                input.Value = 2;
                                console.log(output.Value.valueOf()); //4
                                

                                נ.ב. הגליונות ממוספרים מ1, לא מ0.

                                תגובה 1 תגובה אחרונה
                                4
                                • dovidD dovid העביר נושא זה מ-תכנות ב-

                                בא תתחבר לדף היומי!
                                • התחברות

                                • אין לך חשבון עדיין? הרשמה

                                • התחברו או הירשמו כדי לחפש.
                                • פוסט ראשון
                                  פוסט אחרון
                                0
                                • דף הבית
                                • קטגוריות
                                • פוסטים אחרונים
                                • משתמשים
                                • חיפוש
                                • חוקי הפורום