我希望有人可以帮我解决这个问题。我尝试过谷歌做我需要的东西,但没有任何特定的或容易适应的东西,我是一个有编程和编码的哑巴......
我每天使用的应用程序会生成几个gz文件,每个文件包含一个csv文件。为了简化我的生活,我希望运行一个完成这项工作的脚本:
这里有一些关于环境和要求的更多细节:
任何csv文件都有以下命名约定:
CheeseFile_YellowCheese_yyyy_mm_dd-randomnumber_othersnumber.csv
CheeseFile_BlueCheese_yyyy_mm_dd-randomnumber_othersnumber.csv
HamFile_RawHam_yyyy_mm_dd-randomnumber_othersnumber.csv
HamFile_CookedHam_yyyy_mm_dd-randomnumber_othersnumber.csv
并应分别保存为:
OutputFile - CheeseFile_mmddyyyy_Yellow Cheese.xlsx
OutputFile - CheeseFile_mmddyyyy_Blue Cheese.xlsx
OutputFile - HamFile_mmddyyyy_Raw Ham.xlsx
OutputFile - HamFile_mmddyyyy_Coocked Ham.xlsx
原始文件名中的日期必须保存在输出xlsx文件中
如果您需要更多详细信息,请告知我们,并提前感谢您提供的任何理解:)
答案 0 :(得分:0)
虽然我同意OP似乎没有公平分享这一点(谷歌有多难?),但我知道其他人将会在寻找未来。发布信息将有助于他们。
@OP,我不打算为你做所有的文件处理工作,但这里是从CSV转换为XLSX的基本代码,这可能是提出的问题中最不常见的部分。
Option Explicit
Dim strCSVfile, strExcelFile, FSO
Dim objWorkbook, objWorksheet1
set FSO = CreateObject("Scripting.FileSystemObject")
strCSVfile = "C:\temp\Excel Test\myFile.csv"
strExcelFile = "C:\temp\Excel Test\myFile.xlsb" 'this was changed
if FSO.FileExists(strCSVfile) then
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.displayalerts=false
'Import CSV into Spreadsheet
Set objWorkbook = objExcel.Workbooks.open(strCSVfile)
Set objWorksheet1 = objWorkbook.Worksheets(1)
'Save workbook (51 = 2010 format)
'Formats ref https://msdn.microsoft.com/en-us/library/office/ff198017.aspx
'Parameters ref https://msdn.microsoft.com/en-us/library/office/ff841185.aspx
objWorksheet1.SaveAs strExcelFile, 50 'this was changed
objExcel.Quit()
else
msgbox "File Note found"
end if
编辑: BTW,OP @ ...发布您的代码,更多人会帮助您。如果您使用为解压缩和文件处理而编写的代码更新您的问题,我将帮助您完成该部分。
编辑:更新了.xlsb格式输出。行更改标记为。
答案 1 :(得分:-3)
7z e *.gz;ls | foreach {$old=$_.name;$newname='OutputFile - '+$oldname.split('_')[0]+'_'+$oldname.split('_')[3]+$oldname.split('_')[4]+$oldname.split('_')[2]+'_'+$oldname.split('_')[1]+'.xlsx';mv $oldname $newname }