2015-12-29 3 views
-3

Надеюсь, кто-то может помочь мне с этой проблемой. Я пытался Google что-то делать то, что мне нужно, но нет каких-либо конкретных или легко адаптироваться, и я не знаю, как программировать и кодировать ...Извлеките gz и конвертируйте csv в xlsx

Приложение, которое я использую каждый день, производит несколько файлов gz, содержащих один csv файл каждый. С целью упрощения немного мою жизнь, я желаю запустить сценарий, сделать эту работу:

  1. экстракте CSV файлы из любого GZ в текущей папке
  2. Сохранить любой извлеченный CSV файл, как XLSX файлы в то же самое папка
  3. Переименовать файл XLSX правильно
  4. Удалите GZ и CSV-файлы из текущей папки

Вот еще несколько подробностей об окружающей среде и требования:

  • Запуск ОС Windows 7 Enterprise (установлен Powershell)
  • Office 2010 установлен
  • Я не могу установить дополнительное программное обеспечение или библиотеку (это корпоративный ноутбук)
  • Любой файл 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

  • Сырные файлы находятся в их папке и Хама файлы находятся в отдельной папке, так что я могу адаптировать сценарий как Мне нужно.

Пожалуйста, дайте мне знать, если вам нужны дополнительные детали и спасибо заранее за любую помощь :) оценил

+2

1. Google 'extract gz using powershell' 2.Google «конвертирует csv в xlsx с powershell» 3. Google «переименовывает файлы с помощью powershell» 4. Google «удаляет файлы с помощью PowerShell» – dfundako

+0

Возможно, я просто устал и настроен «правильно», но я предполагаю, OP фактически потратил больше времени, разместив этот заказ, чем поиск в Google, как решить проблему. – notjustme

ответ

0

Хотя я согласен, что ОП не кажется, сделали свою справедливую долю выясняя это (насколько сложно Google?), я знаю, что кто-то еще будет смотреть в будущее. Информация о проводке поможет им.

@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 

Edit:BTW, OP @ ... разместим ваш код и больше людей будут помогать вам. Если вы обновите свой вопрос с помощью кода, который вы написали для распаковки и обработки файлов, я помогу с этой частью.

Редактировать: Обновлено для выхода .xlsb. Линии изменены как таковые.

+0

Здравствуйте, спасибо за ваш ответ! Поиск в Google я понял, что, вероятно, лучшим языком был PS, но для меня это настоящий беспорядок. Например, в течение этих дней некоторое требование изменилось, и теперь я должен сохранить файлы в xlsb. Я следил за ссылками, которые вы прокомментировали в коде, надеясь найти, как обновить его сам, но я не понимаю, как это сделать .... – Sauzer

+0

Спасибо RLH :) – Sauzer

-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 } 
+0

Это не приведет к созданию надлежащего xlsx-файла. – notjustme

+0

"и конвертировать csv в xlsx" говорится в заголовке ... – notjustme

Смежные вопросы