特殊文字は比較出力は、ファイルを比較することはできませんマルチシートページが大きすぎる超えて、システムメモリのターンエクセルTXTスクリプトの問題を超えて解決することはできません

特殊文字は比較出力は、ファイルを比較することはできませんマルチシートページが大きすぎる超えて、システムメモリのターンエクセルTXTスクリプトの問題を超えて解決することはできません

XLS_to_CSV.vbsは
" コンマ区切りのテキストファイルにExcelブックを変換します。Microsoft Excelが必要です。
' 使用法:
'   のWScript XLS_to_CSV.vbs <入力ファイル> <出力ファイル> 

オプション 明示

' MsoAutomationSecurity 
のConst msoAutomationSecurityForceDisable = 3 
' OpenTextFile IOModeに
ます。Const ForReading = 1 
のConst ForAppending = 8 
のConst TristateTrue = - 1  
' XlFileFormat 
のConst xlCSV = 6  ' カンマ区切り値
のConstxlUnicodeText = 42 
" XlSheetVisibility 
のConst xlSheetVisible = - 1 

点心のApp、AutoSec、ドク、FILESYS、AppProtect
 設定 FILESYS = のCreateObject" Scripting.FileSystemObjectオブジェクト" の場合 FileSys.FileExists(WScript.Arguments(1))次に
    FileSys.DeleteFile WScript.Arguments (1 終了 した場合
の設定のApp = のCreateObject" まずExcel.Application " " AppProtect =のCreateObject( "まずExcel.Application")を設定します

オン エラー 再開 

App.DisplayAlerts = Falseの
AutoSec = App.AutomationSecurity 
App.AutomationSecurity = msoAutomationSecurityForceDisable 
Err.Clear 

薄暗いI、J、SHEETNAME、TgtFile、TMPFILE、TmpFilenames()、コンテンツ
 設定ドク= App.Workbooks.Open(WScript.Arguments(0)、の場合のErr = 0  その後、
    I = 0 
    の場合 J = 1  Doc.Sheets.Count
         もし Doc.Sheets(J).Visible = xlSheetVisibleその後、
            I = I + 1 
        エンド 場合は
    
    のReDim TmpFilenames - (I 1 を設定し TgtFile = FileSys.OpenTextFile(WScript.Arguments(1)、ForAppending、、TristateTrue)
    私は = 0 
    の場合 J = 1  Doc.Sheets.Count
         の場合 Doc.Sheets(J).Visible = xlSheetVisible そして
            SHEETNAME = Doc.Sheets(J).NAME 
            TgtFile.WriteLine " "" SHEET "&SHEETNAME&" "" "
            Doc.Sheets(J).Activate 
            TmpFilenames(I) = FileSys.GetSpecialFolder(2)&" \ "FileSys.GetTempName 
            Doc.SaveAs TmpFilenames(I)、xlUnicodeText 
            設定 TMPFILE = FileSys.OpenTextFile(TmpFilenames(I)、ForReading、、TristateTrue)
             ファイル全体を書き込むための書き込みは、ファイル全体の書き込みエラーは、すべてのコンテンツの喪失、その進歩的な方法の使用につながることができます。
            また、メモリ不足ファイルの問題が大きすぎる防ぐことができます
            しばらく ないTmpFile.AtEndOfStream 
                TgtFile.WriteLine TmpFile.ReadLine 
            Wendの
            TgtFile.Write TmpFile.ReadAll 
            TmpFile.Closeを
            もし I <> UBound関数(TmpFilenames)次に
                TgtFile.WriteLine 
            終了 する場合
            Doc.Sheets(J).NAME = SHEETNAME 
            I = I + 1 
        エンド 場合
    
    TgtFile.Closeが
    Doc.Close Falseの
終了を した場合

App.AutomationSecurity = AutoSec 
App.Quit 
セットアプリ= 何も

のために I = 0   UBound関数(TmpFilenames)
     もし FileSys.FileExists(TmpFilenames(I))次に、
        TmpFilenames FileSys.DeleteFile(I)
    終了 した場合


WScript.Sleep(1000年

" 、この操作は、ウィンドウを閉じるには失敗しますが、手動でオフに設定する前にさらされているエラー履歴書上で無視され、次のキャプチャする必要があります 
App.Visible = trueに

次にAppProtect.Workbooks.Count = 0の場合は    「保護プロセスだけで、ユーザーが使用している可能性がある終了することはできません             AppProtect.Quit もしエンドtrueに= AppProtect.Visibleを設定AppProtect =何も

 

 

 

「XLS_to_CSV.vbs」」は、カンマ区切りのテキストファイルにExcelブックを変換します。Microsoft Excelが必要です。」用法:」のWScript XLS_to_CSV.vbs <入力ファイル> <出力ファイル>
明示的なオプション
'MsoAutomationSecurityConst msoAutomationSecurityForceDisable = 3' OpenTextFile iomodeConst ForReading = 1Const ForAppending = 8Const TristateTrue = -1 'XlFileFormatConst xlCSV = 6'カンマ区切りvaluesConst xlUnicodeText = 42' XlSheetVisibilityConst xlSheetVisible = -1
点心のApp、AutoSec、ドク、FILESYS、AppProtectSet FILESYS =のCreateObject( "Scripting.FileSystemObjectオブジェクト")FileSys.FileExists(WScript.Arguments(1))ThenFileSys.DeleteFile WScript.Arguments(1)エンドIfSETをアプリケーション= CreateObjectの場合は( "まずExcel.Application") 'を設定しAppProtect =のCreateObject( "エクセル。

App.DisplayAlerts = FalseAutoSec = App.AutomationSecurityApp.AutomationSecurity = msoAutomationSecurityForceDisableErr.Clear
Err = 0テーニ= 0For J = 1場合Doc.SheetsにI、J、SHEETNAME、TgtFile、TMPFILE、TmpFilenames()、ContentSetドク= App.Workbooks.Open(WScript.Arguments(0)、FALSE、TRUE)薄暗いです。 COUNTIF Doc.Sheets(J).Visible = xlSheetVisibleテーニ=私は1End IfNextReDim TmpFilenamesを+(I - 1)を設定しTgtFile = FileSys.OpenTextFile(WScript.Arguments(1)、ForAppending TristateTrue、TRUE)にI = 0For J = 1 Doc.Sheets(J).Visible = xlSheetVisible ThenSheetName = Doc.Sheets(J).NameTgtFile.WriteLine "" "SHEET" &SHEETNAME& "" "" Doc.Sheets(J).ActivateTmpFilenames(I)Doc.Sheets.CountIf = FileSys.GetSpecialFolder(2)& "\" &FileSys.GetTempNameDoc.SaveAs TmpFilenames(I)、xlUnicodeTextSet TMPFILE = FileSys.OpenTextFile(TmpFilenames(I)、ForReading、偽、TristateTrue)「写失败会、写整个文件的话書きます导致整个文件所有内容丢失、所以采用逐行方式「。メモリ不足ファイルの問題を防止することができるが大きすぎるしばらくないTmpFile.AtEndOfStream TgtFile.WriteLine TmpFile.ReadLine Wendの「TgtFile.Write TmpFile.ReadAllTmpFile.CloseIf I <> UBound関数(TmpFilenames)ThenTgtFile.WriteLineEnd IfDoc.Sheets(J).nameの= SheetNameI =私は場合1End IfNextTgtFile.CloseDoc.Close FalseEndを+
何もない= AutoSecApp.QuitSetのApp = App.AutomationSecurity
UBound関数にI = 0(TmpFilenames)もしFileSys.FileExists(TmpFilenames(I))ThenFileSys.DeleteFile TmpFilenames(I)終了IfNextについては
WScript.Sleep(1000)
「この操作のために、閉じるマニュアルの隙間にさらさ前面のウィンドウを設定することができなかった、真のオンエラー再開の上に次のキャプチャする必要があります= App.Visibleを無視
「= 0そして、もしAppProtect.Workbooks.Count」「保護プロセスは、単に、ユーザーを終了することはできません「AppProtect.Quit'End If'AppProtect.Visible = true'Set AppProtect = Nothingを使用しないかもしれません

おすすめ

転載: www.cnblogs.com/dongzhiquan/p/beyond_excel_convert_script.html