Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизКак объединить две ячейки в Excel программно? Найти похожие ветки
← →
cardinall (2004-06-17 08:49) [0]Есть шаблон Excel.xlt. Мне необходимо програмно некоторые ячейки в ходе генерирования отчета объединять.
← →
Ozone © (2004-06-17 08:51) [1]Пиши макрос и делай по аналогии
← →
YurikGL © (2004-06-17 08:59) [2]что-то вроде Excelapplication1.range("a1","d1").merge(nil);
← →
User_Name (2004-06-17 09:59) [3]Я пользуюсь такой функцией
function SetRange(WorkBook: OleVariant; y1, x1, y2, x2: Integer): OleVariant;
begin
Result := WorkBook.WorkSheets[1].Range[
WorkBook.WorkSheets[1].Cells[y1, x1],
WorkBook.WorkSheets[1].Cells[y2, x2]];
end;
© не мой :)
← →
cardinall (2004-06-18 16:30) [4]Вобщем такой вариант работает. Все подробно... В цикле объеденяем ячейки, которые необходимо объединить.
uses ExcelXP,ActiveX,ComObj;
...
type
IxlApplication = ExcelXP._Application;
IxlWorkbook = ExcelXP._Workbook;
IxlWorksheet = ExcelXP._Worksheet;
IxlRange = ExcelXP.ExcelRange;
...
var
FIXLSApp: IxlApplication;
FLCID: LCID;
...
procedure MergeCells;
var
IWorkbook: IxlWorkbook;
ISheet: IxlWorksheet;
StartROW: Integer;
IR1, IR2: IxlRange;
COUNT: Integer;
begin
StartROW := 12;
COUNT := 0;
IWorkbook := FIXLSApp.Workbooks.Add(ExpandFileName("TEMPLATE\Template1.xlt"), FLCID);
ISheet := IWorkbook.Worksheets.Item["Sheet1"] as ExcelXP._Worksheet;
SomeTable.First;
while not SomeTable.EOF do
begin
//--------------------------------------------------
IDispatch(IR1) := ISheet.Cells.Item[StartROW+COUNT, 2];
IDispatch(IR2) := ISheet.Cells.Item[StartROW+COUNT, 3];
ISheet.Range[IR1,IR2].Merge(0);
INC(COUNT);
//--------------------------------------------------
SomeTable.Next;
end;
end;
← →
Romkin © (2004-06-18 16:37) [5]Только merge(EmptyParam) или Merge(False) - просто точнее :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.048 c