|
Как работать с Excel? | ☑ | ||
|---|---|---|---|---|
|
0
AigizK
23.08.07
✎
16:36
|
Может кто примерчик скинит,как можно записать и считывать Excel файл
|
|||
|
1
ТелепатБот
гуру
23.08.07
✎
16:36
|
||||
|
2
zbv
23.08.07
✎
16:44
|
||||
|
3
cucumber
23.08.07
✎
17:04
|
// Процедура ИнициализацияEX()
//------------------------------ Функция ИнициализацияEX() Попытка Ex = СоздатьОбъект("Excel.Application"); Ex.Visible = 0; Исключение Предупреждение("Excel не установлен на данном компьютере!"); Возврат 0; КонецПопытки; //Ex.DisplayAlerts = 0; //Ex.EnableCancelKey = 0; //Ex.EnableEvents = 0; Попытка Ex.Workbooks.Open(Файл,0); Исключение Предупреждение("Не могу открыть Файл с именем "+Файл); Возврат 0; КонецПопытки; КонецФункции //------------------------------ // Процедура ЗакрытиеEX() //------------------------------ Процедура ЗакрытиеEX() Попытка Ex.ActiveWorkbook.Close(0); Исключение Сообщить ("Закройте файл"); КонецПопытки; //Ex.EnableEvents = 1; //Ex.ScreenUpdating =1; //Ex.EnableCancelKey =1; Ex.Visible=0; Ex.Quit(); КонецПроцедуры Процедура Сформировать() ИнициализацияEX() Если Ex.WorkSheets(1).Cells(1,1).Interior.ColorIndex=36 Тогда Ex.WorkSheets(1).Cells(1,1).value)=0; КонецЕсли; ЗакрытиеEX() КонецПроцедуры |
|||
|
4
AigizK
23.08.07
✎
17:47
|
(3) Пробовал так не получилось.В отладчике посмотрел значение Ex.WorkSheets(1).Cells(1,1).Interior.ColorIndex=Ошибка в выражение!
|
|||
|
5
AigizK
23.08.07
✎
17:48
|
Есть такая обработка
Процедура Выгрузить_в_Excel() xl=СоздатьОбъект("Excel.Application"); row=1; //первая строка спр=СоздатьОбъект("Справочник.Контрагенты"); спр.ВыбратьЭлементы(); Пока спр.ПолучитьЭлемент() = 1 Цикл xl.Cells(row,1).Value=спр.Код; xl.Cells(row,2).Value=спр.Наименование; row=row+1;//переходим на следующую строку КонецЦикла; КонецПроцедуры но мне надо чтоб сохранялся все это в указанный файл |
|||
|
6
smaharbA
23.08.07
✎
17:55
|
(5) писателю надо неного мозги поправить
|
|||
|
7
smaharbA
23.08.07
✎
17:56
|
(5) Книга.SaveAs(Файл)
|
|||
|
8
Adruid
23.08.07
✎
18:37
|
(6) +5
|
|||
|
9
AigizK
24.08.07
✎
09:58
|
(6),(8) обработка (5) работает только в том случае когда отокрыт пусчтой эксел файл.А мне надо чтоб сохранялись джанные на файл в которую я указал.(3) у меня не заработала.Читайте (4).
|
|||
|
10
zbv
24.08.07
✎
10:06
|
(9) в (3) не рабочий пример...
|
|||
|
11
AigizK
24.08.07
✎
10:11
|
я нашел такой
токо выложить не могу.При копирование кода каракулы вставляются.Непонятно почему,до этого все нормально работало :( |
|||
|
12
zbv
24.08.07
✎
10:12
|
(11) раскладку русскую включи
|
|||
|
13
AigizK
24.08.07
✎
11:49
|
i=0;
Пока i<100 цикл i=i+1; //Sheets("Лист3").Select Если i = 1 тогда Excel=СоздатьОбъект("Excel.Application"); НовыеРабочиеКниги = Excel.Workbooks; рабочаякнига = НовыеРабочиеКниги.Add(); Excel.Caption = "Save"; //Excel.Sheets.add(); //добовляеет лист в Excel Excel.Sheets("Лист2").Name = "ЛистНе2"; КонецЕсли; Если i = 50 тогда Excel2=СоздатьОбъект("Excel.Application"); НовыеРабочиеКниги2 = Excel2.Workbooks; рабочаякнига2 = НовыеРабочиеКниги2.Add(); Excel2.Caption = "Save2"; //Excel.Sheets.add(); //добовляеет лист в Excel Excel2.Sheets("Лист2").Name = "ЛистНе2"; КонецЕсли; Если i>=50 Тогда i1=i-49; Excel2.Sheets("ЛистНе2").Select(); Ячейка = Excel2.Cells(i1,1); Ячейка.Value =i; иначе Ячейка = Excel.Cells(i,1); Ячейка.Value = i; КонецЕсли; ы // Конецесли; КонецЦикла; Excel.Visible = 1; Excel2.Visible = 1; |
|||
|
14
AigizK
24.08.07
✎
11:49
|
эта обработка позволяет создать новый эксель.Мне надо его теперь сохранить.Как это сделать то?
|
|||
|
15
zbv
24.08.07
✎
11:54
|
(14) (7) - не помогает?
|
|||
|
16
AF
24.08.07
✎
11:56
|
мыло давай...
|
|||
|
17
AF
24.08.07
✎
11:59
|
//Простейший пример вывода из 1С:Предприятия 7.7 в MS Excel. Обеспечение наличия у рабочей книги единственного листа,
//установка размера, жирности и цвета шрифта, ширины колонок, рамок и заливки ячеек. Выравнивание текста //ячеек, группировка строк, установка числового формата ячеек, закрепление области. Процедура Вывод() Попытка Application=СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки(),"!!!"); Сообщить("Возможно, MS Excel не установлен на этом компьютере."); Возврат; КонецПопытки; //Создание рабочей книги WorkBook=Application.WorkBooks.Add(); //Получение окна Window=WorkBook.Windows(1); //Установка невидимости окна для убыстрения вывода Window.Visible=0; //Обеспечение наличия у рабочей книги единственного листа Если WorkBook.Worksheets.Count=0 Тогда WorkBook.Worksheets.Add(); Иначе Application.DisplayAlerts=0;//не выдавать предупреждений Пока WorkBook.Worksheets.Count>1 Цикл WorkBook.Worksheets(1).Delete(); КонецЦикла; Application.DisplayAlerts=-1;//восстановление флага выдачи предупреждений КонецЕсли; //Получение рабочего листа Worksheet=WorkBook.Worksheets(1); //Задание имени рабочего листа Worksheet.Name="Пример вывода"; //Заголовок документа Worksheet.Range("A1").Value="Пример вывода из 1С:Предприятия в MS Excel"; Worksheet.Range("A2").Value="сегодня "+ТекущаяДата(); Worksheet.Range("A1:A2").Font.Size=14;//размер шрифта Worksheet.Range("A1:A2").Font.Bold=-1;//жирный шрифт //Задание ширины колонок Worksheet.Columns(1).ColumnWidth=60; Worksheet.Columns(2).ColumnWidth=15; Worksheet.Columns(3).ColumnWidth=15; //Шапка документа Worksheet.Range("A4").Value="Первая колонка"; Для ы=7 по 10 Цикл//рамки Worksheet.Range("A4").Borders(ы).LineStyle=1; Worksheet.Range("A4").Borders(ы).Weight=-4138;//xlMedium КонецЦикла; Worksheet.Range("A4").Interior.ColorIndex=15;//заливка серым Worksheet.Range("A4").HorizontalAlignment=-4108;//выравнивание текста по центру Worksheet.Range("B4").Value="Вторая"; Для ы=7 по 10 Цикл Worksheet.Range("B4").Borders(ы).LineStyle=1; Worksheet.Range("B4").Borders(ы).Weight=-4138; КонецЦикла; Worksheet.Range("B4").Interior.ColorIndex=15; Worksheet.Range("B4").HorizontalAlignment=-4108; Worksheet.Range("C4").Value="Третья"; Для ы=7 по 10 Цикл Worksheet.Range("C4").Borders(ы).LineStyle=1; Worksheet.Range("C4").Borders(ы).Weight=-4138; КонецЦикла; Worksheet.Range("C4").Interior.ColorIndex=15; Worksheet.Range("C4").HorizontalAlignment=-4108; //Для группировки строк: Worksheet.Outline.SummaryRow=0;//"итоговые" строки отображать сверху (если снизу, то 1) //Вывод строк Worksheet.Range("A5").Value="Объект аналитики"; Worksheet.Range("A5").Font.ColorIndex=5;//цвет шрифта - синий Worksheet.Range("B5").Value=123.45; Worksheet.Range("B5").Font.ColorIndex=5; Worksheet.Range("C5").Value=678.9; Worksheet.Range("C5").Font.ColorIndex=5; Worksheet.Range("A6").Value="Объект аналитики"; Worksheet.Range("A6").Font.ColorIndex=3;//цвет шрифта - красный Worksheet.Range("B6").Value=123.45; Worksheet.Range("B6").Font.ColorIndex=3; Worksheet.Range("C6").Value=678.9; Worksheet.Range("C6").Font.ColorIndex=3; Worksheet.Range("A7").Value="Объект аналитики"; Worksheet.Range("B7").Value=123.45; Worksheet.Range("C7").Value=678.9; Worksheet.Range("A8").Value="Объект аналитики"; Worksheet.Range("B8").Value=123.45; Worksheet.Range("C8").Value=678.9; Worksheet.Range("A9").Value="Объект аналитики"; Worksheet.Range("A9").Font.ColorIndex=3;//цвет шрифта - красный Worksheet.Range("B9").Value=123.45; Worksheet.Range("B9").Font.ColorIndex=3; Worksheet.Range("C9").Value=678.9; Worksheet.Range("C9").Font.ColorIndex=3; Worksheet.Range("A10").Value="Объект аналитики"; Worksheet.Range("B10").Value=123.45; Worksheet.Range("C10").Value=678.9; Worksheet.Range("A11").Value="Объект аналитики"; Worksheet.Range("B11").Value=123.45; Worksheet.Range("C11").Value=678.9; Worksheet.Range("A12").Value="Объект аналитики"; Worksheet.Range("A12").Font.ColorIndex=5;//цвет шрифта - синий Worksheet.Range("B12").Value=123.45; Worksheet.Range("B12").Font.ColorIndex=5; Worksheet.Range("C12").Value=678.9; Worksheet.Range("C12").Font.ColorIndex=5; Worksheet.Range("A13").Value="Объект аналитики"; Worksheet.Range("A13").Font.ColorIndex=3;//цвет шрифта - красный Worksheet.Range("B13").Value=123.45; Worksheet.Range("B13").Font.ColorIndex=3; Worksheet.Range("C13").Value=678.9; Worksheet.Range("C13").Font.ColorIndex=3; Worksheet.Range("A14").Value="Объект аналитики"; Worksheet.Range("B14").Value=123.45; Worksheet.Range("C14").Value=678.9; Worksheet.Range("A15").Value="Объект аналитики"; Worksheet.Range("B15").Value=123.45; Worksheet.Range("C15").Value=678.9; Worksheet.Range("A16").Value="Объект аналитики"; Worksheet.Range("A16").Font.ColorIndex=3;//цвет шрифта - красный Worksheet.Range("B16").Value=123.45; Worksheet.Range("B16").Font.ColorIndex=3; Worksheet.Range("C16").Value=678.9; Worksheet.Range("C16").Font.ColorIndex=3; Worksheet.Range("A17").Value="Объект аналитики"; Worksheet.Range("B17").Value=123.45; Worksheet.Range("C17").Value=678.9; Worksheet.Range("A18").Value="Объект аналитики"; Worksheet.Range("B18").Value=123.45; Worksheet.Range("C18").Value=678.9; //Установка рамок Для НомСтр=5 по 18 Цикл Для ы=7 по 10 Цикл Worksheet.Range("A"+НомСтр).Borders(ы).LineStyle=1; Worksheet.Range("B"+НомСтр).Borders(ы).LineStyle=1; Worksheet.Range("C"+НомСтр).Borders(ы).LineStyle=1; КонецЦикла; КонецЦикла; //Группировка строк Worksheet.Range("7:8").Rows.Group(); Worksheet.Range("10:11").Rows.Group(); Worksheet.Range("14:15").Rows.Group(); Worksheet.Range("17:18").Rows.Group(); Worksheet.Range("6:11").Rows.Group(); Worksheet.Range("13:18").Rows.Group(); //Свёртка группировок до первого уровня Worksheet.Outline.ShowLevels(1); //Установка числового формата Попытка Worksheet.Range("B5:C18").NumberFormat="# ##0.00"; Исключение Попытка Worksheet.Range("B5:C18").NumberFormat="# ##0,00"; Исключение КонецПопытки; КонецПопытки; //Установка видимости приложения и его окна Application.Visible=-1; Window.Visible=-1; //Закрепление области Worksheet.Range("A5").Select(); Window.FreezePanes = -1; КонецПроцедуры //Вывод |
|||
|
18
AigizK
24.08.07
✎
12:14
|
Помогло вот это
Excel.Visible =0; рабочаякнига.SaveAs(Файл); Excel.WorkBooks.close(); Excel.Quit(); (7) просто не заметил :) |
|||
|
19
AigizK
24.08.07
✎
18:17
|
Открываю таким образом файл.
Excel=СоздатьОбъект("Excel.Application"); НовыеРабочиеКниги = Excel.Workbooks; рабочаякнига = НовыеРабочиеКниги.Open(Строка(Папка+Файл)); Но через раз может выскакивать такая ошибка. НовыеРабочиеКниги = Excel.Workbooks; {C:\DOCUMENTS AND SETTINGS\ДЕНИС.DENIZK\РАБОЧИЙ СТОЛ\AYGIZ\1C\ЗАКАЗЫ ПОСТАВЩИКАМ.ERT(73)}: Поле агрегатного объекта не обнаружено (Workbooks) Надо сказать наверное еще,что я открываю эксель несколько раз,подряд.Т.е. создаю новый,далее открываю его,а потом закрываю Закрываю так Excel.Visible =0; рабочаякнига.SaveAs(Строка(ПапкаДляХранения+Файл)); Excel.WorkBooks.close(); Excel.Quit(); |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |