Форум продуктов IBM Lotus
Общие вопросы => Разработка приложений => Тема начата: Sergey_st85 от 04 Сентябрь 2009, 18:59:47
-
Как программно сохранить док-т в эксель?
Прошу точно для моего кода; я никак логику не пойму.
Dim xl As Variant, xlWorksheet As Variant,xlworkbook As Variant
Set xl= CreateObject("Excel.Application")
Set wb=xl.Workbooks.add(filepath)
xl.visible =True
Set xlWorkbook = xl.Workbooks(1)
Set xlWorksheet = xlWorkbook.Worksheets(1)
wb.save выкидывает окно "Фaйл 'Oтчeт пo coглacoвaнию, пo cиcтeмным нacтpoйкaм, Дoгoвop (04.09.2009).xls' yжe cyщecтвyeт в дaннoм мecтe. Зaмeнить?".
А как же ему не существовать, если я его сохдал... никакие параметры не помогают, другие пути сохранения тоже. Хелп!
-
А если файл персохранить - он пустой так и остается, несмотря на то, что я ВИЖУ, как он заполняется.
-
ЕЩЁ КРУЧЕ. умудрился пересохранить так: создавал и записывал все в .XLS1, а записывал при помощи saveas в .XLS. Так у меня форматирование пропало!
-
Часть задачи решил.
Ни в коем случае нельзя открывать файл методом Set wb=xl.Workbooks.ADD(filepath)
тогда он становится только для чтения.
Вот как получилось.
Open filePath For Output As #FH
Close #fh
Dim xl As Variant, xlWorksheet As Variant,xlworkbook As Variant
Set xl= CreateObject("Excel.Application")
Set wb=xl.Workbooks.open(filepath)
Сохраняется - методом xl.Workbooks(1).save
Но лажа в том, что сохраняется не в формат EXCEL, а в какую-то Ж, ее прилагаю. ЧТо это может быть? Как видите, здесь табы или пробелы вместо каракуль, какие обычно бывают после сохранения именно XLS. Копирнул прям из блокнота.
№ документа Тип его Наименование Подразделение-Исполнитель Кем просрочено Дата поступления на согласование Дата окончания согласования № версии согласования Последняя версия?
02-09/0003д Договор Договор оказания консультационных услуг Служба безопасности Шишкин Дмитрий Александрович 06.02.2009 12:15:18 09.02.2009 11:57:50 1 Да
03/53-09/0063ф Договор Договор с ООО «Офис-Фаворит» на поставку мебели для СРМ Псков "Филиал ""Архангельский"" (г.Архангельск)" Красина Галина Валентиновна 03.04.2009 17:38:22 06.04.2009 11:05:47 1 Да
03-09/0067а Договор "ХОУМБЕРГ Письмо о расторжении договора № б/н от ""15"" июня 2007 г." Дирекция по работе с институциональными агентами Быстрова Ольга Васильевна 14.04.2009 14:14:37 16.04.2009 15:54:12 1 Да
05/15-09/0070ф Договор ДОГОВОР № 15/2009 (ВОЗМЕЗДНОГО ОКАЗАНИЯ УСЛУГ ПО УПРАВЛЕНИЮ АВТОМОБИЛЕМ) СРМ-Камышин Филиал г.Волгоград Колонтаев Артур Петрович 06.03.2009 10:31:52 11.03.2009 11:43:27 1 Да
03/103-09/0016ф Договор Приложение №2 к Договору №2 возмездного оказания услуг (печать бланков договоров ОПС) "Филиал ""Омский"" (г.Омск)" Булыгина Эмилия Вадимовна 09.04.2009 12:51:30 10.04.2009 14:03:48 2
03-09/0105д Договор "Договор на оказание услуг по публикации рекламного модуля и годового отчета НО ""НПФ ""ЛУКОЙЛ-ГАРАТ""" Управление рекламы и PR Азарова Елена Владимировна 05.05.2009 10:14:00 06.05.2009 13:10:48 4
03-09/0105д Догов
-
Это "Teкcтoвыe фaйлы (c paздeлитeлями тaбyляции) (*.txt)". Почему он сохраняет не в то, что я хочу?.
-
Админы, я очень прошу разрешить мне ругаться матом в этом форуме. Это НЕРЕАЛЬНО.
Формат сохраняется хорошо только тогда, когда делаешь так:
xl.Workbooks(1).saveas Left(filepath,Len(filepath)-1) , -4143
первый нонсенс: БЕЗ СКОБОК. Второй - именно МИНУС 4143. Что за ПИИП - я так и не понял. Но формат XLS держит.
-
Причем именно saveAS, потому что обычный сейв не терпит параметров.
-
Четкий текст создания док-та экселя и уУСПЕШНОГО сохранения.
Open filePath For Output As #FH
Сlose #fh ' - важно создать файл, если его нет, иначе метода OPEN не сработает.
Dim xl As Variant, xlWorksheet As Variant,xlworkbook As Variant
Set xl= CreateObject("Excel.Application")
xl.Workbooks.open(filepath) ' Важно, чтобы файл был с 4-значным расширением: XLS и ещё к-н символ.
xl.visible =False
Set xlWorkbook = xl.Workbooks(1)
Set xlWorksheet = xlWorkbook.Worksheets(1)
' Мучаем ячейки, форматируя их и вставляя информацию по вашим счетам за интернет.
'Корректно сохраняем и вырубаем это чудовище Билли Гейтса.
xl.Workbooks(1).saveas Left(filepath,Len(filepath)-1) , -4143 ' Сохранит именно XLS.
xl.Workbooks(1).close
xl.Quit ' KILL HIM!!!
-
Примеры разные.
' Мучаем ячейки, форматируя их и вставляя информацию по вашим счетам за интернет.
'.cells(1,1)="Выгруженные сотрудники из базы " & {"} & "Сотрудники Группы" &{"} & "."
' .Cells(3,1).Font.Bold = True
' .Cells(3,7).Font.colorindex = 10 'Зеленый.
' .Cells(ii,1).Font.colorindex = 3 ' Красный.
' .Cells(ii,1).Font.Underline = True 'Подчеркнуть.
xl.ActiveSheet.Range("A1").Select ' Если у вас несколько листов или очень длинная страница - лучше сделать это.
-
ss1="A" & ii & {:} & "F" & ii ' Выделить диапазон
.Range(ss1).Merge 'Склеить
.range(ss1).HorizontalAlignment=1
.range(ss1).NumberFormat="@" 'Сделать формат... текстовым?
-
Вот ещё, в свое время обыскался правильного значения:
xl.ActiveSheet.PageSetup.Orientation=2 ' Альбомная ориентация.