Форум » [x]Harbour » Сортировка таблицы Excel » Ответить

Сортировка таблицы Excel

leo: Есть необходимость обработать нескольких десятков таблиц Excel и в конце обработки каждой таблицы отсортировать информацию по определенному столбцу. Может кто подскажет как это можно сделать на Harbour?

Ответов - 8

Andrey: Здесь на форуме были темы работы с макросами, делаешь макрос на EXCEL'е а потом переделываешь в код Harbour'a !

leo: Andrey пишет: Здесь на форуме были темы работы с макросами, делаешь макрос на EXCEL'е а потом переделываешь в код Harbour'a ! Ну и как перевести макрос: Range("A13089:M13089").Select Range(Selection, Cells(1)).Select Selection.Copy Application.CutCopyMode = False Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal

Andrey: leo пишет: Ну и как перевести макрос: Ну я же писал уже, смотри форум ! Прежде чем спрашивать, посмотри что уже было ! Начни хотя бы с этого: http://clipper.borda.ru/?1-4-0-00000259-000-0-0-1222435021 Я не спец, по переводу.

leo: Andrey пишет: Ну я же писал уже, смотри форум ! Прежде чем спрашивать, посмотри что уже было ! Начни хотя бы с этого: http://clipper.borda.ru/?1-4-0-00000259-000-0-0-1222435021 Я не спец, по переводу. Прежде чем задать вопрос я просмотрел не только то, на что вы даете ссылку, но и более подробную статью Владимира Максимова( см. например http://www.codenet.ru/db/vfp/Excel-To-FoxPro.php ). И хотя она для VFP, но на многие вопросы я в ней ответы нашел. А вот как перевести макрос по сортировке не понял. Поэтому обратился к тем, кто уже сталкивался с моими проблемами. Вообще-то это небольшая часть моей проблемы. Более подробно ее можно описать так: есть таблица, в которой часть столбцов(в том числе и мой) защищена. В этом столбце фамилия записана не так как ее записывают "нормальные" люди. Всем нужно фимилия, имя и отчество, а у меня имя, отчество и затем фамилия. Необходимо временно снять защиту(пароль я знаю), привести в "порядок" фамилию и затем отсортировать информацию по фамилии. Вот такой заказ. Как программно снять пароль я пока не разобрался(может кто и это подскажет), с наведением в порядок фамилий все получилось, а вот на сортировке споткнулся. Если кто-то из участников форума с этим сталкивался - помогите.

Петр: [pre2]PROCEDURE main Exm_MSExcel() RETURN STATIC PROCEDURE Exm_MSExcel() LOCAL oExcel, oWorkBook, oWorkSheet, oAS IF ( oExcel := win_oleCreateObject( "Excel.Application" ) ) != NIL oWorkBook := oExcel:WorkBooks:Add() oAS := oExcel:ActiveSheet() WITH OBJECT oAs // Set font for all cells :Cells:Font:Name := "Arial" :Cells:Font:Size := 12 :Cells( 1, 1 ):Value := "OLE from Harbour" :Cells( 1, 1 ):Font:Size := 16 :Cells( 3, 1 ):Value := "String:" :Cells( 3, 2 ):Value := "Hello, World!" :Cells( 4, 1 ):Value := "Numeric:" :Cells( 4, 2 ):Value := 1234.56 :Cells( 5, 1 ):Value := "Logical:" :Cells( 5, 2 ):Value := .T. :Cells( 6, 1 ):Value := "Date:" :Cells( 6, 2 ):Value := DATE() :Cells( 7, 1 ):Value := "Timestamp:" :Cells( 7, 2 ):Value := HB_DATETIME() // Some formatting :Columns( 1 ):Font:Bold := .T. :Columns( 2 ):HorizontalAlignment := -4152 // xlRight :Columns( 1 ):AutoFit() :Columns( 2 ):AutoFit() :Columns( 3 ):AutoFit() :Columns( 4 ):AutoFit() :Cells( 3, 2 ):Font:ColorIndex := 3 // red :Range( "A1:B1" ):HorizontalAlignment := 7 :Range( "A3:B7" ):Select() :Range( "A3:B7" ):Sort( oAS:Range("A4"), 1 /*xlAscending*/ ) ENDWITH oAs:Protect( "password" ) //oAs:UnProtect( "password" ) oExcel:Visible := .T. //oExcel:Quit() ELSE ? "Error: MS Excel not available. [" + win_oleErrorText()+ "]" ENDIF [/pre2]

leo: Петр Огромное спасибо, все получилось!

Петр: Огромное спасибо Да не за что. все получилось! А по другому и быть не могло, куда оно от нас денется

fokinal21: leo пишет: Огромное спасибо, все получилось! Подскажите, как в данной концепции, сделать сортировку по двум столбцам? В VBA все красиво, но никак не получается сделать перевод. Перерыл форум, но ничего не нашел...



полная версия страницы