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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. חיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv

חיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv

מתוזמן נעוץ נעול הועבר תוכנה
15 פוסטים 6 כותבים 404 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי dovid
    #4

    @shraga הוא מתכנת, כך שהוא צריך לסדר לעצמו אבל הוא חשב שיש כבר משהו מוכן.
    אני יותר הייתי ממליץ על AutoHotKey ודומיו, אבל אני לא מכיר מספיק.
    הכי טוב זה לכתוב קוד שעושה את העבודה, לסגור את זה כתוכנה שמקבלת ארגומנט קובץ, ולהוסיף את זה לקליק ימני של .xlsx.
    את החלק האחרון אני לא יודע בדיוק איך מבצעים.

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    M תגובה 1 תגובה אחרונה
    3
    • M מנותק
      M מנותק
      mekev
      השיב לdovid ב נערך לאחרונה על ידי mekev
      #5

      ראשית תודות
      @חגי על הדרך כיצד להצמיד את זה ל'קליק הימני'
      @shraga על הקישורים המאוד רלוונטיים
      @dovid על האמון, האמונה, וההכוונה

      והרי הפתרון שעשיתי
      יצרתי שני קבצים בתיקייה
      (הפעלה ע"י הקובץ bat)

      1. בשם: excel-to-csv.bat
      FOR /f "delims=" %%i IN ('DIR %1 /b') DO (
          cscript to-csv.vbs "%%i" "%%~ni.csv"
      )
      
      1. בשם: to-csv.vbs
      if WScript.Arguments.Count < 2 Then
          WScript.Echo "Please specify the source and the destination files. Usage: ExcelToCsv <xls/xlsx source file> <csv destination file>"
          Wscript.Quit
      End If
      
      csv_format = 6
      
      Set objFSO = CreateObject("Scripting.FileSystemObject")
      
      src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0))
      dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1))
      
      Dim oExcel
      Set oExcel = CreateObject("Excel.Application")
      
      Dim oBook
      Set oBook = oExcel.Workbooks.Open(src_file)
      
      oBook.SaveAs dest_file, csv_format
      
      oBook.Close False
      oExcel.Quit
      

      זה כרגע פעיל רק מהתיקייה שבה הקבצים נמצאים (בדר"כ בהורדות..)
      וזה כרגע מספק אותי....

      תגובה 1 תגובה אחרונה
      9
      • WheneverW מנותק
        WheneverW מנותק
        Whenever
        כתב ב נערך לאחרונה על ידי
        #6

        מדהים!

        1. למה להגביל אותו שיעבוד רק משני קבצי אקסל ומעלה?
        2. לי זה עושה באג שזה יוצר גם שני קבצי CSV עם התוכן של הBAT וVBS.

        אני חושב להפוך את סקריפט שימיר CSV לאקסל. זה יהיה לי שימושי.

        תודה רבה!

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

          @Whenever כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:

          למה להגביל אותו שיעבוד רק משני קבצי אקסל ומעלה?

          למה אתה חושב?
          אצלי זה עובד גם על קובץ בודד

          @Whenever כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:

          לי זה עושה באג שזה יוצר גם שני קבצי CSV עם התוכן של הBAT וVBS.

          כאשר אתה מריץ את הקובץ ישירות בתיקייה
          זה אכן כפי שתארת

          אבל אני מפעיל את זה ב'קליק ימני' (shell:sendto )
          ואז זה עובד תקין
          וממיר רק את הקובץ הרלוונטי בעותק אחד

          @Whenever כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:

          אני חושב להפוך את סקריפט שימיר CSV לאקסל. זה יהיה לי שימושי.

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

          תגובה 1 תגובה אחרונה
          0
          • OdedDvirO מנותק
            OdedDvirO מנותק
            OdedDvir
            השיב לshraga ב נערך לאחרונה על ידי OdedDvir
            #8

            @shraga כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:

            אולי מישהו יתנדב לסדר לך משהו מושלם.

            @dovid כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:

            את החלק האחרון אני לא יודע בדיוק איך מבצעים.

            @Whenever כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:

            אני חושב להפוך את סקריפט שימיר CSV לאקסל. זה יהיה לי שימושי.

            אחרי ש @mekev עשה עבודה יפה, אני מתנדב בשמחה להוסיף את השיפורים שלי:

            סקריפט batch משופר להמרה דו כיוונית (Excel<->Csv):

            @echo off
            if /i [%2]==[csv] goto TryConvert
            if /i [%2]==[xlsx] goto TryConvert
            
            echo Unsupported output format specified: %2
            exit /b
            
            :TryConvert
            echo Converting file %1 to %2 format, please wait...
            cscript /nologo "%~dp0ExcelCsvConvertorScript.vbs" "%~dpnx1" "%~dpn1.%2" %2
            echo Done!
            

            סקריפט VB משופר להמרה דו כיוונית:

            if WScript.Arguments.Count <> 3 Then
                Wscript.Echo "Error: invalid number of arguments specified." & vbNewline
                WScript.Echo "Usage: ExcelCsvConvertor <InputFileName> <OutputFileName> <OutputFormat>" & vbNewline
                WScript.Echo "Example: ExcelCsvConvertor input.xlsx output.csv csv"
                Wscript.Quit
            End If
            
            InputFileName = Wscript.Arguments.Item(0)
            OutputFileName = WScript.Arguments.Item(1)
            OutputFormat = lcase(WScript.Arguments.Item(2))
             
            Select Case OutputFormat
            Case "csv"
                XlFileFormatValue = 62
            Case "xlsx"
                XlFileFormatValue = 51
            Case Else
                Wscript.Echo "Unsupported output format specified: " & OutputFormat
                Wscript.Quit
            End select
            
            
            With CreateObject("Excel.Application")
                With .Workbooks.Open(InputFileName)
                    .SaveAs OutputFileName, XlFileFormatValue
                    .Close False
                End With
                .Quit
            End With
            

            קובץ להתקנה והסרה קלה מתפריט ההקשר (לחצן ימני):

            @echo off
            
            set convertor_path=%~dp0ExcelCsvConvertor.cmd
            cls
            echo ==========================================================================
            echo ExcelCsvConvertor: Context menu setup
            echo ==========================================================================
            echo.
            echo [1] Install   : Adds "Convert to CSV/Excel" options to context menu
            echo [2] Uninstall : Removes "Convert to CSV/Excel" options from context menu
            echo [Q] Quit
            echo.
            choice /C 12Q /T 1000 /D Q /N /M "Please select an option: "
            
            IF [%errorlevel%]==[1] GOTO Install
            IF [%errorlevel%]==[2] GOTO Uninstall
            exit /b
            
            :Install
            echo Installing...
            REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV /f /d "Convert to CSV..."
            REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV\command /f /d "\"%convertor_path%\" \"%%1\" csv"
            REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel /f /d "Convert to Excel..."
            REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel\command /f /d "\"%convertor_path%\" \"%%1\" xlsx"
            goto Done
            
            :Uninstall
            echo Uninstalling...
            REG DELETE HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV /f
            REG DELETE HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel /f
            goto Done
            
            :Done
            echo Done!
            pause
            

            הערות:

            1. את ההתקנה יש להפעיל עם הרשאות מנהל
            2. מיקום הסקריפטים מוטמע ברישום בזמן ההתקנה.
              אם משנים את מיקום הסקריפטים לאחר ההתקנה, נדרש להפעיל את ההתקנה שוב.

            והנה כל החבילה להורדה: (הערה: עיין בהמשך האשכול לגרסה משופרת 0.2)
            ExcelCsvConvertor.cmd
            ExcelCsvConvertorScript.vbs
            Setup (run as Administrator).cmd

            תגובה 1 תגובה אחרונה
            8
            • WheneverW מנותק
              WheneverW מנותק
              Whenever
              כתב ב נערך לאחרונה על ידי Whenever
              #9

              אלוף!

              למה זה לא עובד לי בלי ההתקנות?
              עשיתי קובץ VBS עם הקוד שלך וקראתי לו ExcelCsvConvertorScript.vbs
              עשיתי קובץ BAT עם הקוד שלך וקראתי לו excel-to-csv
              שמתי בתיקייה XLXS וגם CVA
              ניסיתי להפעיל את הBAT כרגיל וגם כמנהל וכלום.
              כשהפעלתי כמנהל נפתח לרגע החלון של ה CMD אבל בתיקייה לא קרה כלום.

              האם זה חייב התקנה?

              תודה רבה על ההשקעה!

              dovidD תגובה 1 תגובה אחרונה
              1
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #10

                @OdedDvir תודה! למה צריך את הbat?

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                OdedDvirO תגובה 1 תגובה אחרונה
                0
                • OdedDvirO מנותק
                  OdedDvirO מנותק
                  OdedDvir
                  כתב ב נערך לאחרונה על ידי
                  #11

                  @Whenever שמות הקבצים המקוריים של @mekev שונו על ידי. אם אתה רוצה לשנות אותם למשהו אחר, אתה צריך להחליף את כל המופעים שבהם מופיע השם הנוכחי.
                  לדוגמא, בקובץ הראשון לעיל בשורה 10 מופיע שם קובץ הסקריפט:

                  cscript /nologo "%~dp0ExcelCsvConvertorScript.vbs" "%~dpnx1" "%~dpn1.%2" %2
                  
                  תגובה 1 תגובה אחרונה
                  1
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    השיב לWhenever ב נערך לאחרונה על ידי dovid
                    #12

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

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    0
                    • OdedDvirO מנותק
                      OdedDvirO מנותק
                      OdedDvir
                      השיב לdovid ב נערך לאחרונה על ידי
                      #13

                      @dovid

                      @dovid כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:

                      @OdedDvir תודה! למה צריך את הbat?

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

                      M OdedDvirO 2 תגובות תגובה אחרונה
                      2
                      • M מנותק
                        M מנותק
                        mekev
                        השיב לOdedDvir ב נערך לאחרונה על ידי mekev
                        #14

                        @OdedDvir מ-ד-ה-י-ם

                        תוספת קטנה לקוד
                        (בקוד שהבאת, במידה ויש יותר מגליון אחד בקובץ xlsx, מומר הגליון הפעיל בלבד [לא הראשון])

                        בקוד הזה במידה ויש יותר מגליון אחד
                        נוצר קובץ CSV עבור כל גליון

                        excelcsvconvertor.cmd

                        @echo off
                        if /i "%~2"=="csv" goto TryConvert
                        if /i "%~2"=="xlsx" goto TryConvert
                         
                        echo Unsupported output format specified: %2
                        exit /b
                         
                        :TryConvert
                        echo Converting file %1 to %2 format, please wait...
                        cscript /nologo "%~dp0ExcelCsvConvertorScript.vbs" "%~dpnx1" "%~n1" %2
                        echo Done!
                        
                        

                        excelcsvconvertorscript.vbs

                        If WScript.Arguments.Count <> 3 Then
                            WScript.Echo "Error: invalid number of arguments specified." & vbNewline
                            WScript.Echo "Usage: ExcelCsvConvertor <InputFileName> <OutputFileName> <OutputFormat>" & vbNewline
                            WScript.Echo "Example: ExcelCsvConvertor input.xlsx output.csv csv"
                            WScript.Quit
                        End If
                         
                        InputFileName = WScript.Arguments.Item(0)
                        OutputFileName = WScript.Arguments.Item(1)
                        OutputFormat = LCase(WScript.Arguments.Item(2))
                        
                        OutputFolder = Left(InputFileName, InStrRev(InputFileName, "\"))
                        
                        Select Case OutputFormat
                            Case "csv"
                                XlFileFormatValue = 6
                                OutputFileExtension = ".csv"
                            Case "xlsx"
                                XlFileFormatValue = 51
                                OutputFileExtension = ".xlsx"
                            Case Else
                                WScript.Echo "Unsupported output format specified: " & OutputFormat
                                WScript.Quit
                        End Select
                        
                        Set objExcel = CreateObject("Excel.Application")
                        Set objWorkbook = objExcel.Workbooks.Open(InputFileName)
                         
                        For Each objWorksheet In objWorkbook.Worksheets
                            objWorksheet.SaveAs OutputFolder & OutputFileName & "_" & Replace(objWorksheet.Name, " ", "") & OutputFileExtension, XlFileFormatValue
                        Next
                         
                        objWorkbook.Close False
                        objExcel.Quit
                        
                        

                        הערה: נערך ע"י בינה מלאכותית, אבל נבדק ועובד תקין

                        תגובה 1 תגובה אחרונה
                        4
                        • OdedDvirO מנותק
                          OdedDvirO מנותק
                          OdedDvir
                          השיב לOdedDvir ב נערך לאחרונה על ידי OdedDvir
                          #15

                          @OdedDvir כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:

                          נחכה לשדרוג לגרסה 0.2 🙂

                          הנה גרסה 0.2 שדורשת רק שני קבצים (קרדיט ל-@dovid על ההערה)

                          סקריפט vb

                          if WScript.Arguments.Count <> 2 Then
                              Wscript.Echo "Error: invalid number of arguments specified." & vbNewline
                              WScript.Echo "Usage: ExcelCsvConvertor <InputFileName> <OutputFormat>" & vbNewline
                              WScript.Echo "Example: ExcelCsvConvertor input.xlsx csv"
                              Wscript.Quit
                          End If
                          
                          
                          InputFileName = Wscript.Arguments.Item(0)
                          OutputFormat = lcase(WScript.Arguments.Item(1))
                          
                          Select Case OutputFormat
                          Case "csv"
                              XlFileFormatValue = 62
                          Case "xlsx"
                              XlFileFormatValue = 51
                          Case Else
                              Wscript.Echo "Unsupported output format specified: " & OutputFormat
                              Wscript.Quit
                          End select
                          
                          With CreateObject("Scripting.FileSystemObject")
                              OutputFileName = .GetBaseName(InputFileName) & "." & OutputFormat
                              InputFileName = .GetAbsolutePathName(InputFileName)
                              OutputFileName = .GetParentFolderName(InputFileName) & "\" & OutputFileName
                          End With
                          
                          WScript.Echo "Converting: " & InputFileName & " to " & OutputFormat & ": " & OutputFileName
                          
                          With CreateObject("Excel.Application")
                              With .Workbooks.Open(InputFileName)
                                  .SaveAs OutputFileName, XlFileFormatValue
                                  .Close False
                              End With
                              .Quit
                          End With
                          

                          קובץ התקנה

                          @echo off
                          
                          set convertor_path=%~dp0ExcelCsvConvertor.vbs
                          cls
                          echo ==========================================================================
                          echo ExcelCsvConvertor: Context menu setup
                          echo ==========================================================================
                          echo.
                          echo [1] Install   : Adds "Convert to CSV/Excel" options to context menu
                          echo [2] Uninstall : Removes "Convert to CSV/Excel" options from context menu
                          echo [Q] Quit
                          echo.
                          choice /C 12Q /T 1000 /D Q /N /M "Please select an option: "
                          
                          IF [%errorlevel%]==[1] GOTO Install
                          IF [%errorlevel%]==[2] GOTO Uninstall
                          exit /b
                          
                          :Install
                          echo Installing...
                          REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV /f /d "Convert to CSV..."
                          REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV\command /f /d "cscript /nologo \"%convertor_path%\" \"%%1\" csv"
                          REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel /f /d "Convert to Excel..."
                          REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel\command /f /d "cscript /nologo \"%convertor_path%\" \"%%1\" xlsx"
                          goto Done
                          
                          :Uninstall
                          echo Uninstalling...
                          REG DELETE HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV /f
                          REG DELETE HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel /f
                          goto Done
                          
                          :Done
                          echo Done!
                          pause
                          

                          כל החבילה v0.2:
                          ExcelCsvConvertor.vbs
                          Setup (run as Administrator).cmd

                          @mekev הזריז הקדים אותי, אבל אני משאיר לו לשדרג את הפיצ'ר שלו לגרסה 0.3

                          תגובה 1 תגובה אחרונה
                          7

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

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

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