Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Внизedit и Excel Найти похожие ветки
← →
Nik_Larin (2005-05-23 11:59) [0]Уважаемые мастера, отзывчевые люди, у меня такой к вам для меня сложный вопрос, а для вас, я думаю, простой вопросик.
Постараюсь попонятнее!
Вообщем, есть два edit - а и документ Excel.
Пользователь вводит фамилию в edit1 и имя в edit2, и нажимает на кнопку, которая заносит эти данные в ячейку таблицы Excel, но это ещё не все, дело в том что этих пользоватлей несколько, а документ один. как сделать чтобы каждый пользователь добавлялся?
Заранее большое спасибо!
← →
Drakosha © (2005-05-23 13:06) [1]... а поподробнее про пользователей можно?
а то дабавить в ексель не проблема.
← →
-=XP=- © (2005-05-23 13:09) [2]Многопользовательский доступ к одному документу Excel?
Недурно!
Используйте базы данных, и не изобретайте велосипед.
← →
Nik_Larin (2005-05-23 13:18) [3]Drakosha © (23.05.05 13:06) [1]
>а то дабавить в ексель не проблема.
Хорошо начнем с того как просто добавить данные одного студента в екскль! Drakosha, как это сделать?
-=XP=-
>Используйте базы данных, и не изобретайте велосипед.
Еще дурнее вопрос: А это как сделать, что за база?
← →
-=XP=- © (2005-05-23 13:34) [4]Еще дурнее вопрос: А это как сделать, что за база?
Прежде чем что-то делать, разберитесь, что это, и как это обычно принято делать.
База данных - это есть некоторый абстрактный термин, определяющий место и способ хранения данных. Кроме того, по умолчанию подразумеваются механизмы сохранения этих данных (запись) и извлечения этих данных (чтение) из этой базы данных.
Основные понятия: База Данных (БД), Таблица, Запись, Поле. В разных источниках эти понятия могут называться по-разному, но сути своей от этого они не меняют.
Поле - единица информации - в данном случае это "Фамилия" или "Имя". Могут быть и другие поля, такие как "Дата рождения" и пр. Для простоты понимания, поля - ячейки таблицы, находящиеся в одном столбце.
Запись - совокупность полей, описывающих одну сущность. В данном случае - человека. Для простоты понимания, запись - строка таблицы.
Таблица - совокупность записей.
База Данных - совокупность таблиц.
Для работы с БД презназначены СУБД - Системы Управления Базами Данных.
Примеры: MS Jet (Access), Intebase Server, MS SQL Server, DBF, Paradox и пр.
Это в нескольких словах.
А вообще - чтобы не изобретать велосипед - читайте теорию построения БД. Причем займитесь этим прямо сейчас, иначе потратите много сил и времени на решение вопросов, которые уже даыно решены. В частности - организация многопользовательского доступа к БД.
← →
Гарри Поттер © (2005-05-23 13:48) [5]Вроде человеку надо чтобы при повторном вводе данные вводились не в ту же ячейку, а в следующую?
← →
Drakosha © (2005-05-23 14:05) [6]2 Nik_Larin
вот этого тебе должно хватить
http://delphiworld.narod.ru/base/excel_data_exchange.html
а про двух юзверей всётаки попросилбы поподробнее..
← →
-=XP=- © (2005-05-23 14:38) [7]Вроде человеку надо чтобы при повторном вводе данные вводились не в ту же ячейку, а в следующую?
Интересно, что ему понадобится, когда два пользователя одновременно попытаются получить доступ к документу?
← →
Dels © (2005-05-23 15:44) [8]>Drakosha © (23.05.05 14:05) [6]
Обратился по данной ссылке (меня этот вопрос тоже очень интересует), попробовал компилировать - ошибку выдал на строчке
XLApp.Connect;
может какой-то компонент забыл?
← →
debuger © (2005-05-23 16:01) [9]Это либо ваш ексел проглючивает или либа COMObj.
← →
debuger © (2005-05-23 16:10) [10]Брр. Плохо перечитал код. Я от кого-то слышал, что использовать TExcelApplication не очень рекомендуется. Более цивильный вариант(не факт)..., в общем смотрите код(он старый, так что не обращайте внимания на его стиль).
uses COMObj;
function ReferenceToCell(const ARow, ACol: Integer): string;
begin
Result := Chr(Ord("A") + ACol - 1) + IntToStr(ARow);
end; {Reference to Cell}
function xlCellFormat(const value: double): double;
begin
Result := Trunc(value) + Trunc(Frac(value) * 100) / 100;
end; {xlCellFormat}
function ExportChartToExcel(const deviceName: string; const series: TLineSeries; const devCfg: TDeviceConfiguration; const fileName: string): boolean;
const
xlWBatWorksheet = -4167;
var
xlApp, xlSheet, xlData : OLEVariant;
i: Integer;
rowCount, colCount: integer;
begin
Result := False;
rowCount := series.Count + 2;
colCount := 1;
xlData := VarArrayCreate([0, rowCount, 0, colCount], varVariant);
// дата
xlData[0, 0] := "Дата";
xlData[0, 1] := DateToStr(Now);
// время
xlData[1, 0] := "Время";
// значения
xlData[1, 1] := "Показания";
// заполняем
for i := 0 to series.Count - 1 do begin
// время
xlData[i + 2, 0] := TimeToStr(series.XValues[i]);
// значения
xlData[i + 2, 1] := xlCellFormat(series.YValues[i]);
end; {for}
xlApp := CreateOleObject("Excel.Application");
try
// прячем Excel
xlApp.Visible := False;
xlApp.Workbooks.Add(xlWBatWorkSheet);
xlSheet := xlApp.Workbooks[1].WorkSheets[1];
xlSheet.Name := deviceName;
// заполняем шит
xlSheet.Range[ReferenceToCell(1, 1), ReferenceToCell(rowCount + 1, colCount + 1)].Value := xlData;
// форматируем шит
xlSheet.Range[ReferenceToCell(1, 1), ReferenceToCell(1, 2)].Font.Bold := True;
xlSheet.Range[ReferenceToCell(2, 1), ReferenceToCell(rowCount, colCount + 1)].Borders.LineStyle := 1;
xlSheet.Columns[1].ColumnWidth := 10;
xlSheet.Columns[2].ColumnWidth := 13;
//xlSheet.Columns[3].ColumnWidth := 10;
//xlSheet.Columns[4].ColumnWidth := 10;
// сохраняем Excel Worksheet
try
xlApp.Workbooks[1].SaveAs(fileName);
Result := True;
except
// Error ?
end;
finally
// завершаем Excel
if not VarIsEmpty(XLApp) then
begin
xlApp.DisplayAlerts := False;
xlApp.Quit;
xlApp := Unassigned;
xlSheet := Unassigned;
xlData := Unassigned;
end;
end;
end; {ExportChartToExcel}
← →
Drakosha © (2005-05-23 16:27) [11]2 Dels © (23.05.05 15:44) [8]
а вот это не забыл?
"Так же на форме находится компонент TExcelApplication со свойством Name, содержащим XLApp и свойством ConnectKind, содержащим ckNewInstance."
2 debuger ©
Оч хотелось бы узнать чего ето TExcellApplication так плох ... пол проекта с его использованием написано...и не хотелось бы переписывать :) ... если в вспомнишь где о таком читал дай знать плиз.
← →
YurikGL © (2005-05-23 19:13) [12]
> Оч хотелось бы узнать чего ето TExcellApplication так плох
> ...
У него реализован не весь интерфейс. Поэтому приходится изголяться. Через CreateOleObject все пишется намного проще
← →
Drakosha © (2005-05-25 09:58) [13]YurikGL © (23.05.05 19:13) [12]
пару примеров если не затруднит
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c