Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
ВнизОшибка сервера. Excel. Найти похожие ветки
← →
VOPROS (2006-12-13 09:57) [0]Здравствуйте, уважаемые мастера!
Есть БД (FoxPro), ADO. Формирую запрос, результат нужно перекинуть в Excel. У меня все работает (XP, Office2003), на других машинах с 98 и 97 соответственно тоже работает, но на нужном компьютере в программе выходит ошибка: "Ошибка сервера" при перекидывании данных из запроса в Excel. Код на кнопку для Excel следующий:DBGrid1.DataSource.DataSet.First;
ExcelApp := CreateOleObject("Excel.Application");
ExcelApp.WorkBooks.Add(xlWBatWorkSheet);
ExcelApp.WorkBooks[1].WorkSheets[1].name := "Статданные";
mem := TMemo.Create(Self);
mem.Visible := false;
mem.Parent := Form1;
mem.Clear;
Mem.Lines.Add("Статданные вызовов "+datetostr(DTP_nach.date));
mem.Lines.Add(statusbar1.Panels[0].Text+", "+Statusbar1.Panels[1].Text+", "+Statusbar1.Panels[2].Text);
for col := 0 to DBGrid1.FieldCount-1 do
sline := sline + DBGrid1.Fields[col].DisplayLabel + #9;
mem.Lines.Add(sline);
for row := 0 to DBGrid1.DataSource.DataSet.RecordCount-1 do
begin
sline := "";
for col := 0 to DBGrid1.FieldCount-1 do
sline := sline + DBGrid1.Fields[col].AsString + #9;
oemtoansi(pchar(sline),pchar(sline));
mem.Lines.Add(sline);
DBGrid1.DataSource.DataSet.Next;
end;
ExcelApp.Range["a1"].Font.Bold:=true;
mem.SelectAll;
mem.CopyToClipboard;
ExcelApp.Workbooks[1].WorkSheets["Статданные"].Paste;
ExcelApp.Selection.VerticalAlignment:=xlTop;
ExcelApp.Selection.Borders.Weight:=xlThin;
ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape;
for col := 0 to DBGrid1.FieldCount-1 do
ExcelApp.Columns[col+1].ColumnWidth:=15;
ExcelApp.Selection.Wraptext:=true;
ExcelApp.Selection.Wraptext:=true;
ExcelApp.Range["a1","a2"].Wraptext:=false;
ExcelApp.Visible := true;
В чем собака порылась? Очень нужна ваша помощь. Спасибо заранее всем.
← →
Megabyte © (2006-12-13 10:51) [1]А Excel там стоит?
← →
VOPROS (2006-12-13 11:09) [2]стоит 97
← →
umbra © (2006-12-13 12:33) [3]ошибка на какой строке? судя по тому, что Вы делаете, все данные попадают в первый столбец. Если в мемо есть строки длиннее 255 символов, то это и будет источником ошибки.
← →
VOPROS (2006-12-14 09:12) [4]
> ошибка на какой строке?
не знаю, на моем компьютере с Delphi, никаких ошибок не возникает
> судя по тому, что Вы делаете, все
> данные попадают в первый столбец. Если в мемо есть строки
> длиннее 255 символов, то это и будет источником ошибки.
данные на всех кроме одного из проверяемых компьютеров (а проверялось на 4) попадают куда нужно - в нужные столбцы, не работает программа только на одном стареньком компьютере - вылетает вышеуказанная ошибка
← →
umbra © (2006-12-14 10:30) [5]попробуйте сохранить мемо в файл (
mem.Lines.SaveToFile("c:\test.txt")
), а затем открыть этот файл в ЭкселеExelApp.OpenText(FileName:="C:\test.txt, Origin:=xlWindows, Tab:=True);
Исчезла ошибка в Экселе97?
← →
umbra © (2006-12-14 11:09) [6]
> данные на всех кроме одного из проверяемых компьютеров (а
> проверялось на 4) попадают куда нужно - в нужные столбцы
только что проверил - в экселе97 все данные попадают именно в первый столбец
← →
VOPROS (2006-12-15 06:37) [7]Пробую на другой машине 98 и офис 97 - заругался на PageSetup, комментирую эту строку - работает. Пойду пробовать на той машине, где не работало.
> только что проверил - в экселе97 все данные попадают именно
> в первый столбец
почему-то у меня не попадают - все разложено по столбцам как нужно
> попробуйте сохранить мемо в файл (mem.Lines.SaveToFile("c:
> \test.txt")), а затем открыть этот файл в Экселе
> ExelApp.OpenText(FileName:="C:\test.txt, Origin:=xlWindows,
> Tab:=True);
> Исчезла ошибка в Экселе97?
Спасибо за помощь, но ругается "OpenText not supported"
← →
umbra © (2006-12-15 12:22) [8]прошу прощения, ошибочка
ExelApp.Workbooks.OpenText...
← →
VOPROS (2006-12-22 09:38) [9]to umbra Спасибо большое, так заработало :) - шаманство, почему такой вариант работает?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c