Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Листы в Excel (число прочтений - 4056 )
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Листы в Excel
26. Июня 2009 :: 05:57
Печать  
Есть острая необходимость сохранять из 1С в Excel данные на разных листах (множество графиков), штатными средствами это не возможно. Есть ли решение для этой проблемы?
Либо на одном листе, но с гиперссылками?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Листы в Excel
Ответ #1 - 26. Июня 2009 :: 06:50
Печать  
используй Йоксель

Цитата:
Запись файлов Excel

Йоксель реализует возможность прямой записи файлов Excel. При этом никакие посторонние программы не требуется. Можно создать книгу Excel, добавить в нее листы и записать книгу прямо из 1С.

Йоксель сохраняет файлы в формате Microsoft Excel 97 и выше (BIFF8). При этом он работает на несколько порядков быстрее штатного конвертера Excel. Например, отчет «Анализ продаж», содержащий 180 тыс. строк сохраняется за 6 секунд (естественно, в файле сохраняется только 65536 строк). Штатный конвертер сохраняет этот же документ несколько часов.

Также Йоксель обеспечивает более высокое качество полученных файлов. Сравнение конвертеров.

По сравнению с 1С использование Йокселя предоставляет следующие дополнительные возможности:

    * Книги Excel из нескольких листов.
    * Защита листа Excel паролем от модификации.
    * Поддержка свойства «Защита» для ячеек. Например, это позволяет создавать формы для Excel из 1С: защищенные от изменения листы, в которых снята защита (разрешено редактирование) некоторых выбранных ячеек.
    * Поддержка групп строк и колонок документа: созданные в документе Йокселя группы будут корректно сохранены в Excel. Это позволяет экспортировать в Excel сложные, детализированные, отчеты с возможностью их удобного просмотра. Или можно создавать многоуровневые, удобные для изучения, прайс-листы.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Листы в Excel
Ответ #2 - 26. Июня 2009 :: 06:58
Печать  
Я не в курсе Йоксел это что? Где найти, где почитать?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Листы в Excel
Ответ #3 - 26. Июня 2009 :: 07:01
Печать  
RuporAbsurda писал(а) 26. Июня 2009 :: 06:58:
Я не в курсе Йоксел это что? Где найти, где почитать?

http://yoksel.net.ru/HomePage
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Листы в Excel
Ответ #4 - 26. Июня 2009 :: 09:05
Печать  
С йокселем не получилось. При выгрузке диаграммы не отображаются, только рамкиПечаль
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Листы в Excel
Ответ #5 - 26. Июня 2009 :: 09:12
Печать  
Так и напиши об ошибке на форуме того сайта.

Также и можно по другому поставить вопрос
не выгружать диаграмы из 1с а формировать их в xls
Качество диаграм будет на порядок выше.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Листы в Excel
Ответ #6 - 26. Июня 2009 :: 09:14
Печать  
Имеете ввиду через OLE?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Листы в Excel
Ответ #7 - 26. Июня 2009 :: 09:21
Печать  
RuporAbsurda писал(а) 26. Июня 2009 :: 09:14:
Имеете ввиду через OLE?

Да( VB Есть в xls какой-то). Его можно и по OLE использовать.
Даже писал когда-то  формирования графиков из 1с
в самом xls но вряд ли быстро найду.

  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Листы в Excel
Ответ #8 - 26. Июня 2009 :: 09:23
Печать  
Видимо придется Печаль
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Листы в Excel
Ответ #9 - 26. Июня 2009 :: 10:16
Печать  
Код
Выбрать все
Процедура СтроимГрафик_в_Excel()
  Попытка
    XL=CreateObject("Excel.Application");
    If XL.Workbooks.Count>0 Then
      fNeedXlQuit=0;
    Else
      fNeedXlQuit=1;
    EndIf;
    WB=XL.Workbooks.Add();
    chartWS=WB.Worksheets.Add();
    dataWS=WB.Worksheets.Add();
    chartWS.Name="График";
    dataWS.Name="Данные";
    dataWS.Move(WB.Worksheets(1));
    chartWS.Move(WB.Worksheets(1));
    //Пока Запросец.Группировка(1)=1 Цикл
      Тов="Товар";
      chartName="Остатки за период  ";
	  //+Формат(ВыбНачПериода,"ДДДДДММММГГГГ")+
      //" по "+Формат(ВыбКонПериода,"ДДДДДММММГГГГ")+РазделительСтрок+
      //"товар: ("+СокрЛП(Тов.Артикул)+") "+СокрЛП(Тов.Наименование);
      col=1;
      Для Инд1 = 1 по 20 Цикл
	  	dataWS.Cells(2,col).Value=Инд1;
        dataWS.Cells(3,col).Value=2*(Инд1-1);
        dataWS.Cells(4,col).Value=52- 2*Инд1;
        dataWS.Cells(5,col).Value=30;
        col=col+1;
      КонецЦикла;
    //КонецЦикла;
//    dataRange=dataWS.Range(dataWS.Cells(,1),dataWS.Cells(3,col-1));
    dataRange=dataWS.Range(dataWS.Cells(1,1),dataWS.Cells(5,20));
    dataRange.Columns.AutoFit();
    MyChart=chartWS.ChartObjects.Add(0,0,800,300).Chart;
    MyChart.ChartWizard(dataRange,4,1,1,1,0,1,chartName,,"Остаток на конец дня");
    MyChart.SeriesCollection(1).Name=СокрЛП("Тов.Артикул-1");
    MyChart.SeriesCollection(2).Name=СокрЛП("Тов.Артикул-2");
    MyChart.SeriesCollection(3).Name=СокрЛП("Тов.Артикул-3");
    MyChart.SeriesCollection(4).Name=СокрЛП("Тов.Артикул-4");
    MyChart.Axes(1).TickLabels.Orientation=-4171;
    XL.DisplayAlerts=0;
    Counter=WB.Worksheets.Count;
    Пока Counter>2 Цикл
      WB.Worksheets.Item(Counter).Delete();
      Counter=Counter-1;
    КонецЦикла;
    XL.Visible=-1;
    WB.Activate();
    XL.ActiveWindow.Caption="Остатки по дням";
    chartWS.Select();
    XL.DisplayAlerts=-1;
  Исключение
    Сообщить("Ошибка -> "+ОписаниеОшибки(),"!");
    Попытка
      Если fNeedXlQuit=1 Тогда
        XL.DisplayAlerts=0;
        XL.Quit();
      КонецЕсли;
    Исключение
    КонецПопытки;
  КонецПопытки;
  
КонецПроцедуры //СтроимГрафик_в_Excel()
 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать