Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что нужно знать?

2.7K
21 марта 2003 года
Leph
6 / / 21.03.2003
Подскажите, пожалуйста, с помощью каких технологий можно реализовать следующее:
есть текстовый файл(с таблицей - несколько условных колонок разделяемых несколькими пробелами), нужно считать из него каждую "колонку" и сохранить в массивах. Потом отобразить эту таблицу в экселевском файле. Потом из экселевского отобразить в ворд. Программка должна быть написана на VC...
1.9K
21 марта 2003 года
sercher
60 / / 21.03.2003
Наверно работа с Excel через OLE. Ну а текстовый файл читать - fscanf().
2.7K
21 марта 2003 года
Leph
6 / / 21.03.2003
Что в данном случае позволяет OLE? И как все это поддерживает VC?
как считывать из текстового понятно, а как занести в эксель?
3.2K
26 марта 2003 года
bryk
20 / / 26.03.2003
О! Это целая эпопея. Тут много чего нужно знать. И поковыркаться конкретно ...

XL::_Application app; // The XL prefix specifies the namerange.
XL::Workbooks oWorkbooks;
XL::_Workbook oBook;
XL::Worksheets oWorksheets;

// Create and show instance of Excel
if(!app.CreateDispatch("Excel.Application"))
{
MessageBox(AfxGetMainWnd()->GetSafeHwnd(), "Ошибка при создании отчёта.\nНевозможно обратиться к Microsoft Excel.", "Ошибка", MB_ICONSTOP | MB_OK);
return;
}

app.SetSheetsInNewWorkbook(num_ses);

oWorkbooks = app.GetWorkbooks();
oBook = oWorkbooks.Add(covOptional);
oWorksheets = oBook.GetWorksheets();

COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
COleVariant covTrue((short)TRUE);
COleVariant covFalse((short)FALSE);

XL::_Worksheet oSheet;
XL::Range oRange;
XL::Borders oBorders;
XL::Interior oInterior;
XL::Font oFont;

oSheet = oWorksheets.GetItem(COleVariant((short)session_num));
oSheet.Activate(); // Make the sheet selection work
oSheet.SetName("Your sheet name here");

// формируем заголовок таблицы
oRange = oSheet.GetRange(COleVariant("B2"),COleVariant("D2"));

oBorders = oRange.GetBorders();
oBorders.SetLineStyle(COleVariant((short)1)); // xlContinuous
oBorders.SetWeight(COleVariant((short)2)); // xlThin
oBorders.SetColorIndex(COleVariant((short)0));

// наводим красоту
oInterior = oRange.GetInterior();
oInterior.SetColor(COleVariant((long)RGB(0x33,0x66,0xFF)));

oFont = oRange.GetFont();
oFont.SetColor(COleVariant((long)RGB(0xFF,0xFF, 0xFF)));

oRange.SetHorizontalAlignment(COleVariant((short)-4108)); // xlCenter
oRange.SetItem(COleVariant((short)1), COleVariant((short)1), COleVariant("Your Column 1 Name"));
oRange.SetItem(COleVariant((short)1), COleVariant((short)2), COleVariant("Your Column 2 Name"));
oRange.SetItem(COleVariant((short)1), COleVariant((short)3), COleVariant("Your Column 3 Name"));

....

ну и так далее и в таком духе
407
01 июня 2005 года
shupik
160 / / 15.09.2004
Цитата:
Originally posted by bryk
О! Это целая эпопея. Тут много чего нужно знать. И поковыркаться конкретно ...

XL::_Application app; // The XL prefix specifies the namerange.
XL::Workbooks oWorkbooks;
XL::_Workbook oBook;
XL::Worksheets oWorksheets;

// Create and show instance of Excel
if(!app.CreateDispatch("Excel.Application"))
{
MessageBox(AfxGetMainWnd()->GetSafeHwnd(), "Ошибка при создании отчёта.\nНевозможно обратиться к Microsoft Excel.", "Ошибка", MB_ICONSTOP | MB_OK);
return;
}

app.SetSheetsInNewWorkbook(num_ses);

oWorkbooks = app.GetWorkbooks();
oBook = oWorkbooks.Add(covOptional);
oWorksheets = oBook.GetWorksheets();

COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
COleVariant covTrue((short)TRUE);
COleVariant covFalse((short)FALSE);

XL::_Worksheet oSheet;
XL::Range oRange;
XL::Borders oBorders;
XL::Interior oInterior;
XL::Font oFont;

oSheet = oWorksheets.GetItem(COleVariant((short)session_num));
oSheet.Activate(); // Make the sheet selection work
oSheet.SetName("Your sheet name here");

// формируем заголовок таблицы
oRange = oSheet.GetRange(COleVariant("B2"),COleVariant("D2"));

oBorders = oRange.GetBorders();
oBorders.SetLineStyle(COleVariant((short)1)); // xlContinuous
oBorders.SetWeight(COleVariant((short)2)); // xlThin
oBorders.SetColorIndex(COleVariant((short)0));

// наводим красоту
oInterior = oRange.GetInterior();
oInterior.SetColor(COleVariant((long)RGB(0x33,0x66,0xFF)));

oFont = oRange.GetFont();
oFont.SetColor(COleVariant((long)RGB(0xFF,0xFF, 0xFF)));

oRange.SetHorizontalAlignment(COleVariant((short)-4108)); // xlCenter
oRange.SetItem(COleVariant((short)1), COleVariant((short)1), COleVariant("Your Column 1 Name"));
oRange.SetItem(COleVariant((short)1), COleVariant((short)2), COleVariant("Your Column 2 Name"));
oRange.SetItem(COleVariant((short)1), COleVariant((short)3), COleVariant("Your Column 3 Name"));


....

ну и так далее и в таком духе



А позвольте уточнить момент со стилями границ - у Вас есть некая таблица с полным содержанием всевозможных вариантов границ ячеек? Ну там - штрихпунктирная, двойная и т.д. Очень нужно навести лоск, а вот с границами полный абзац. Откопал где-то такой стиль -
oBorders.SetLineStyle(COleVariant(long(0xffffefe2)));
А больше и не знаю.

10
01 июня 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by shupik
Откопал где-то такой стиль -
oBorders.SetLineStyle(COleVariant(long(0xffffefe2)));


Эх вы, TLB импортировать не можете. Это?

 
Код:
const
  xlContinuous = $00000001;
  xlDash = $FFFFEFED;
  xlDashDot = $00000004;
  xlDashDotDot = $00000005;
  xlDot = $FFFFEFEA;
  xlDouble = $FFFFEFE9;
  xlSlantDashDot = $0000000D;
  xlLineStyleNone = $FFFFEFD2;

Взято из ExcelXP.pas Delphi 7.
407
01 июня 2005 года
shupik
160 / / 15.09.2004
Цитата:
Originally posted by Freeman
Эх вы, TLB импортировать не можете. Это?
 
Код:
const
  xlContinuous = $00000001;
  xlDash = $FFFFEFED;
  xlDashDot = $00000004;
  xlDashDotDot = $00000005;
  xlDot = $FFFFEFEA;
  xlDouble = $FFFFEFE9;
  xlSlantDashDot = $0000000D;
  xlLineStyleNone = $FFFFEFD2;

Взято из ExcelXP.pas Delphi 7.


Минутку - это же форум вроде бы по VC++? С Delphi я не очень-то и знаком...

407
01 июня 2005 года
shupik
160 / / 15.09.2004
Цитата:
Originally posted by Freeman
Эх вы, TLB импортировать не можете. Это?
 
Код:
const
  xlContinuous = $00000001;
  xlDash = $FFFFEFED;
  xlDashDot = $00000004;
  xlDashDotDot = $00000005;
  xlDot = $FFFFEFEA;
  xlDouble = $FFFFEFE9;
  xlSlantDashDot = $0000000D;
  xlLineStyleNone = $FFFFEFD2;

Взято из ExcelXP.pas Delphi 7.



Это полный список? Больше стилей в Excel'e не бывает?

10
01 июня 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by shupik
Это полный список? Больше стилей в Excel'e не бывает?


Если Borland не врет, и если в следующей после XP версии ничего не добавилось. Можешь визуально проверить. Есть что-то новое - копай в MSDN Office SDK для Excel.

10
01 июня 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by shupik
Минутку - это же форум вроде бы по VC++? С Delphi я не очень-то и знаком...


Не думаю, чтобы такие простые определения нельзя было понять. И вообще, не нравится - копай MSDN самостоятельно.

А проще было бы все-таки импортировать TLB, тогда соответствующие константы автоматом в заголовочный файл заносятся. И не только в Дельфи.

8.1K
03 июня 2005 года
RusMikola
24 / / 05.04.2005
Цитата:
Originally posted by Freeman
Не думаю, чтобы такие простые определения нельзя было понять. И вообще, не нравится - копай MSDN самостоятельно.

А проще было бы все-таки импортировать TLB, тогда соответствующие константы автоматом в заголовочный файл заносятся. И не только в Дельфи.



Господа, если мне не изменяет память сам недавно об ентом спрашивал, дык нашлась великолепная dll-ка для работы с Excel, она где-то в разделе исходники:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог