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

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

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

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

מתוזמן נעוץ נעול הועבר תוכנה
15 פוסטים 6 כותבים 397 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום