Форум » [x]Harbour » Вопрос по Excel ? » Ответить

Вопрос по Excel ?

Andrey: Всем привет. Вопрос к знатокам Excel-я, как подсчитать сумму ВСЕХ значений с минусом и с плюсом ? Вот есть таблица из многих столбцов. Как сделать формулу для расчёта этих значений по 2-му столбцу ?

Ответов - 153, стр: 1 2 3 4 5 6 7 8 All

Haz: Haz пишет: когда-то делал, поищу где то так [pre2] func main() local oExcel, oSheet local i := j := 0 oExcel := win_oleCreateObject( "Excel.Application" ) oExcel:Visible := .t. oExcel:Workbooks:Add() oExcel:Sheets(1):Select() oExcel:Sheets(1):Select() oSheet := oExcel:ActiveSheet oExcel:Sheets(1):Select() for i := 1 To 10 for j := 1 to 10 oSheet:Cells( i, j):Value := i*j end end oExcel:Sheets(1):Select() oExcel:Sheets(1):Copy(after:=oExcel:Worksheets(1)) oExcel:Sheets(1):Name := "1" oExcel:Sheets(2):Name := "2" oExcel:Sheets(2):Protect("Password") oExcel:Sheets(2):Visible := .f. return nil [/pre2]

Dima: А как его поместить в самый конец Sheets и как понять какой номер ему будет присвоен что имя сменить и пасс поставить ? Макрос в Excel мне выдал я потом преобразовал oSheet:copy(after:=oExcel:Worksheets(3)) Откуда он взял цифру 3 ?

Dima: так нашел вроде Worksheets(Worksheets.Count)


Haz: *PRIVAT*

Dima: вот так вышло lastcnt:=oExcel:Worksheets:Count oSheet:Select() oSheet:copy(after:=oExcel:Worksheets(lastcnt)) oExcel:Sheets(lastcnt):Name :="Оргигинал" oExcel:Sheets(lastcnt):Protect("Колбаска") oSheet:Select() Спасибо

Haz: Dima пишет: вот так вышло

Andrey: Имею такой документ после эскпорта из ТСБ функцией oBrw:ExcelOle() Как мне задать нужную ширину колонок, после создания документа ?

Dima: oSheet:Columns(1):ColumnWidth := 3.86

Andrey: Спасибо БОЛЬШОЕ !!!

Andrey: Сделал так: [pre2] oExcel:Workbooks:Open( cFile, 0 ) oBook := oExcel:ActiveWorkBook() oSheet := oExcel:ActiveSheet() aWidth := {} For nI := 1 To oBrw:nColCount() nW := oBrw:aColumns[ nI ]:nWidth AADD( aWidth, nW ) ? nI, oBrw:aColumns[ nI ]:cName, nW Next For nI := 1 To LEN(aWidth) ? nI, oSheet:Columns(nI):ColumnWidth oSheet:Columns(nI):ColumnWidth := aWidth[nI] ?? "=>", oSheet:Columns(nI):ColumnWidth Next[/pre2] Вылет на 4 колонке: [pre2]Error WINOLE/1006 Нельзя установить свойство ColumnWidth класса Range (0x800A03EC): Microsoft Office Excel (DOS Error -2147352567) Args: [1] = N 317 --------------------------------- Stack Trace --------------------------------- Called from WIN_OLEAUTO:_COLUMNWIDTH(0) Called from EXCELFILEREFINEMENT(271) in module: Tsb2xlsOleExtern.prg Called from TOEXCEL2(247) in module: Form_7Btn.prg Called from (b)MYCONTEXMENUEXPORT(48) in module: Form_7Btn.prg Called from _DOCONTROLEVENTPROCEDURE(0) [/pre2] В логе вот так: [pre2]1 NAME_1 50 2 NAME_2 48 3 NAME_3 48 4 NAME_4 317 5 NAME_5 167 6 NAME_6 167 7 NAME_7 167 8 NAME_8 167 9 NAME_9 167 10 NAME_10 588 1 4.4300 => 50.0000 2 1.8600 => 48.0000 3 4.4300 => 48.0000 4 8.2900 [/pre2] Там в эксель-файле 1 строка объединены колонки с 1 по 10. Это может как то влиять ? Что делать ?

Andrey: Сделал короткий пример - https://cloud.mail.ru/public/oePE/DfQMjBnkT Кто может, подскажите пожалуйста, как задать ширину колонок в этом примере.

Haz: Andrey пишет: Кто может, подскажите пожалуйста, как задать ширину колонок в этом примере. так ты просишь установить ширину 4 колонки в более чем 3 метра. Размеры в Excel задаются в см. ( в тсб в пикселях ) Это конечно косяк excel, мои колонки какую хочу ширину , такую и делаю. Но 3 метра , явно перебор

Andrey: Haz пишет: Размеры в Excel задаются в см. ( в тсб в пикселях ) Блин, пролёт... Совсем про это забыл... Делал это же сам 3 года назад и забыл про это... Да, памяти уже совсем нет... Спасибо БОЛЬШОЕ !



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