Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2007, 22:17   #1
Илюха
Заблокирован
 
Регистрация: 29.09.2007
Сообщений: 106
По умолчанию Сделать так, чтобы в DBGrid выводилась таблица Excel

Как сделать чтобы в DBGrid выводилась таблица ексель. Хочу написать телефоный справочник но у меня телефоны только в екселе.
Илюха вне форума Ответить с цитированием
Старый 01.11.2007, 23:59   #2
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
Сообщение Формата CSV

Файлы формата CSV -текстовый файл, где значения разделенны запятыми.

Сохрани таблицу с номерами в формате csv, а потом разбирай построчно полученный файл и заноси данные в соответствующие строки и столбцы своей таблицы.

Разбить строку на части
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 02.11.2007, 12:51   #3
Илюха
Заблокирован
 
Регистрация: 29.09.2007
Сообщений: 106
По умолчанию

А можно по подробней?? Please!!
Илюха вне форума Ответить с цитированием
Старый 02.11.2007, 13:11   #4
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
Радость

сохрани свою таблицу с форматом dbf 4,открываем дэльфи кидаем на форму dbgrid, table, data source. в свойствах компонента table в качестве имя базы укажите полное имя папки в которой сохранена база данных. далее в table name напиши имя сохраненной папки. теперь настроим datasource,в инспекторе обьектов в свойстве data set укажите компонент table. это значит что источник фанных будет получать данные от компонента table, а тот будет брать их из сохранненого файла.теперь как только свойство active у компонента able сделать равным true данные в dbgrid появятся.
I like WPF
kommunist вне форума Ответить с цитированием
Старый 02.11.2007, 14:35   #5
Илюха
Заблокирован
 
Регистрация: 29.09.2007
Сообщений: 106
По умолчанию

сейчас буду разбиратся
Илюха вне форума Ответить с цитированием
Старый 04.11.2007, 19:55   #6
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
Восклицание Импортировать данные из Excel в Stringgrid

Если тема еще актуальна, сегодня нашел (где уже не помню).

Код:
uses 
  ComObj; 
function Xls_To_StringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean; 
const 
  xlCellTypeLastCell = $0000000B; 
var 
  XLApp, Sheet: OLEVariant; 
  RangeMatrix: Variant; 
  x, y, k, r: Integer; 
begin 
  Result := False; 
  // Create Excel-OLE Object 
  XLApp := CreateOleObject('Excel.Application'); 
  try 
    // Hide Excel 
    XLApp.Visible := False; 

    // Open the Workbook 
    XLApp.Workbooks.Open(AXLSFile); 

    // Sheet := XLApp.Workbooks[1].WorkSheets[1]; 
    Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1]; 

    // In order to know the dimension of the WorkSheet, i.e the number of rows 
    // and the number of columns, we activate the last non-empty cell of it 

    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; 
    // Get the value of the last row 
    x := XLApp.ActiveCell.Row; 
    // Get the value of the last column 
    y := XLApp.ActiveCell.Column; 

    // Set Stringgrid's row &col dimensions. 

    AGrid.RowCount := x; 
    AGrid.ColCount := y; 

    // Assign the Variant associated with the WorkSheet to the Delphi Variant 

    RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value; 
    //  Define the loop for filling in the TStringGrid 
    k := 1; 
    repeat 
      for r := 1 to y do 
        AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R]; 
      Inc(k, 1); 
      AGrid.RowCount := k + 1; 
    until k > x; 
    // Unassign the Delphi Variant Matrix 
    RangeMatrix := Unassigned; 

  finally 
    // Quit Excel 
    if not VarIsEmpty(XLApp) then 
    begin 
      // XLApp.DisplayAlerts := False; 
      XLApp.Quit; 
      XLAPP := Unassigned; 
      Sheet := Unassigned; 
      Result := True; 
    end; 
  end; 
end; 


procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if Xls_To_StringGrid(StringGrid1, 'C:\Table1.xls') then 
    ShowMessage('Table has been exported!'); 
end;
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 07.11.2007, 22:15   #7
Илюха
Заблокирован
 
Регистрация: 29.09.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от kommunist Посмотреть сообщение
сохрани свою таблицу с форматом dbf 4,открываем дэльфи кидаем на форму dbgrid, table, data source. в свойствах компонента table в качестве имя базы укажите полное имя папки в которой сохранена база данных. далее в table name напиши имя сохраненной папки. теперь настроим datasource,в инспекторе обьектов в свойстве data set укажите компонент table. это значит что источник фанных будет получать данные от компонента table, а тот будет брать их из сохранненого файла.теперь как только свойство active у компонента able сделать равным true данные в dbgrid появятся.
Всё сделал как написанно! Но есть глюк! Когда вставляю имена и фамилии - оно пишет иероглифами! Как сделать что бы писал нормально?? Украинским или русским языком??? В исходнике добавлены два dbf файла! один это имена, а другой номера. И как мне в один ДБГрид скинуть и имена и номера??
Вложения
Тип файла: rar spravochnik.rar (328.2 Кб, 32 просмотров)
Илюха вне форума Ответить с цитированием
Старый 08.11.2007, 06:36   #8
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию насчет шрифта

у компонента dbgridв инспекторе обьектов открой свойство font и поменяй шрифт на terminal должно сработать
I like WPF

Последний раз редактировалось kommunist; 08.11.2007 в 14:01.
kommunist вне форума Ответить с цитированием
Старый 08.11.2007, 07:35   #9
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Сделай как AlDelta написал, я в своё время делал у меня работает. Единственное, вносил корректировку на количество строк таблицы (-2).
Трофимов Александр вне форума Ответить с цитированием
Старый 08.11.2007, 09:33   #10
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 03.08.2007
Сообщений: 130
По умолчанию

Цитата:
Сообщение от Трофимов Александр Посмотреть сообщение
Сделай как AlDelta написал, я в своё время делал у меня работает. Единственное, вносил корректировку на количество строк таблицы (-2).
поддерживаю этот подход не требуеть болших усилий !!!
dela ne v dengax a v yego kolichestve
Cantana вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто мне подскажет как сделать так чтобы... Alexij Общие вопросы Delphi 9 16.06.2008 12:47
Как написать,чтобы одна таблица заполнялась на основании другой при определенных условиях Alexm77 Microsoft Office Excel 21 26.05.2008 23:35
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17
Таблица типа Excel Washington Общие вопросы Delphi 5 30.03.2007 17:16