СОХРАНЕНИЕ в excel. И НЕ ТОЛЬКО! БЛИН, ЗУМУЧИЛ ОН МЯ!!!

Автор Тема: СОХРАНЕНИЕ в excel. И НЕ ТОЛЬКО! БЛИН, ЗУМУЧИЛ ОН МЯ!!!  (Прочитано 12440 раз)

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Как программно сохранить док-т в эксель?

Прошу точно для моего кода; я никак логику не пойму.

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нить?".

А как же ему не существовать, если я его сохдал... никакие параметры не помогают, другие пути сохранения тоже. Хелп!
« Последнее редактирование: 04 Сентябрь 2009, 21:03:07 от Sergey_st85 »

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #1 : 04 Сентябрь 2009, 19:01:26 »
А если файл персохранить - он пустой так и остается, несмотря на то, что я ВИЖУ, как он заполняется.

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #2 : 04 Сентябрь 2009, 19:13:29 »
ЕЩЁ КРУЧЕ. умудрился пересохранить так: создавал и записывал все в .XLS1, а записывал при помощи saveas в .XLS. Так у меня форматирование пропало!

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #3 : 04 Сентябрь 2009, 19:52:15 »
Часть задачи решил.

Ни в коем случае нельзя открывать файл методом 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д   Догов

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #4 : 04 Сентябрь 2009, 19:54:45 »
Это "Teкcтoвыe фaйлы (c paздeлитeлями тaбyляции) (*.txt)". Почему он сохраняет не в то, что я хочу?.

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #5 : 04 Сентябрь 2009, 20:33:34 »
Админы, я очень прошу разрешить мне ругаться матом в этом форуме. Это НЕРЕАЛЬНО.

Формат сохраняется хорошо только тогда, когда делаешь так:

xl.Workbooks(1).saveas     Left(filepath,Len(filepath)-1)    ,   -4143

первый нонсенс: БЕЗ СКОБОК. Второй - именно МИНУС 4143. Что за ПИИП - я так и не понял. Но формат XLS держит.

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #6 : 04 Сентябрь 2009, 20:35:34 »
Причем именно saveAS, потому что обычный сейв не терпит параметров.

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #7 : 04 Сентябрь 2009, 20:50:30 »
Четкий текст создания док-та экселя и уУСПЕШНОГО сохранения.

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!!!

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #8 : 04 Сентябрь 2009, 21:00:31 »
Примеры разные.

' Мучаем ячейки, форматируя их и вставляя информацию по вашим счетам за интернет.
   '.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 ' Если у вас несколько листов или очень длинная страница - лучше сделать это.

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Re: СОХРАНЕНИЕ в excel.
« Ответ #9 : 04 Сентябрь 2009, 21:01:20 »
ss1="A" & ii & {:} & "F" & ii ' Выделить диапазон
   .Range(ss1).Merge 'Склеить
   .range(ss1).HorizontalAlignment=1
   .range(ss1).NumberFormat="@" 'Сделать формат... текстовым?

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Вот ещё, в свое время обыскался правильного значения:

   xl.ActiveSheet.PageSetup.Orientation=2 ' Альбомная ориентация.