|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.04.2013, 12:12 | #1 |
Пользователь
Регистрация: 21.03.2013
Сообщений: 46
|
Из EXCEL в bat
Доброе время суток.
Очень срочно нужна Ваша помощь, суть состоит в следующем имеется выгрузка в EXCEL, где нужно из этой выгрузки добавить поля в текстовый документ...НО!!! не все так просто текстовик надо сделать в таком виде как bat файл, в этом и заключается вся сложность файл проекта, bat'ник, и выгрузку выкладываю. Подскажите как? Последний раз редактировалось demon-sheff; 02.04.2013 в 12:23. Причина: добавил |
02.04.2013, 13:11 | #2 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
А что именно то не получается? BAT это простой текстовый файл с расширением bat и если там есть русские символы, то в кодировке 866.
|
02.04.2013, 14:06 | #3 |
Пользователь
Регистрация: 21.03.2013
Сообщений: 46
|
Я не знаю как сделать, чтоб брала данные из таблицы EXCEL и добавляла их в текстовый документ
|
03.04.2013, 06:27 | #4 |
Пользователь
Регистрация: 21.03.2013
Сообщений: 46
|
Посмотрите что не так при выводе их Excel в текстовый документ?
Ребята, подскажите что не так делаю? очень срочно нужна ваша помощь т.к. сам не могу разобраться. Не получается взять 2 поля из выгрузки excel и вставить как в bat - файле. Очень рассчитываю на вашу помощь
|
03.04.2013, 08:06 | #5 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
За тебя писать нет времени, но вот вытащил из одного своего старого проекта:
Код:
|
03.04.2013, 10:10 | #6 |
Пользователь
Регистрация: 21.03.2013
Сообщений: 46
|
спасибо за помощь я в предыдущем ответе прикрепил, там выгрузка идет в StringGrid, а надо чтобы от туда уже в мемо
|
03.04.2013, 11:36 | #7 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
Зачем столько гемороя я не пойму. Берешь в цикле нужные тебе значения и пишешь в TStringList, потом сохраняешь в БАТ и всё. СтрингГрид то и Мемо зачем тебе?
|
03.04.2013, 11:48 | #8 |
Пользователь
Регистрация: 21.03.2013
Сообщений: 46
|
программа то нужна для пользователей, которые должны все это видеть дабы не получилось, такого что :"я тут нажимаю, а у меня ничего не происходит?"( посмотри пожалуйста исходник буду очень благодарен. Вроде все уже сделал осталось только добавить поля из Edit'ов
Последний раз редактировалось demon-sheff; 03.04.2013 в 14:11. Причина: добавил |
03.04.2013, 14:25 | #9 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
У меня твоя прога при запуске сразу в AV уходит на Win7. Кидай свой код сюда и напиши, что у тебя не получается. Как я понял, сначала ты указываешь путь к XLSX файл, потом нажимаешь загрузить и тебя должны данные отобразиться с СтрингЛисте?
Если так, то быстрее будет заново переписать, чем разбираться в твоём проекте, т.к. времени нет. Последний раз редактировалось FaTaL; 03.04.2013 в 14:31. |
03.04.2013, 14:40 | #10 |
Пользователь
Регистрация: 21.03.2013
Сообщений: 46
|
не получается вывести в stringrid еще 2 поля. вообщем код выглядит так:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls, ExtCtrls, jpeg, {ExtCtrls,} ComCtrls, {WideStrings, FMTBcd,} DB, Menus, {pngimage, SimpleDS,} DBCtrls, Mask, Grids, ComObj; type TForm1 = class(TForm) Image1: TImage; Label1: TLabel; Edit1: TEdit; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Memo1: TMemo; SpeedButton3: TSpeedButton; StringGrid1: TStringGrid; SpeedButton4: TSpeedButton; Label2: TLabel; Label3: TLabel; Edit2: TEdit; Edit3: TEdit; Label4: TLabel; Label5: TLabel; Edit4: TEdit; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Excel, Range : Variant; implementation {$R *.dfm} procedure TForm1.SpeedButton1Click(Sender: TObject); var i,j:integer; begin If OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog 1.FileName); Edit1.Text:=OpenDialog1.FileName; end; procedure TForm1.SpeedButton2Click(Sender: TObject); Var I : Byte; F : TextFile; S : String; begin AssignFile(F, Edit2.Text); Rewrite(F); For I := 1 to StringGrid1.RowCount - 1 do Begin S := StringGrid1.Cells[0,I] +' '+StringGrid1.Cells[1,I]; Writeln(F,S); end; CloseFile(F); ShowMessage('Файл сохранен!'); end; procedure TForm1.SpeedButton3Click(Sender: TObject); begin StringGrid1.rowcount:=StringGrid1.r owcount+1; StringGrid1.Cells[0,StringGrid1.rowcount]:=Edit3.text; StringGrid1.Cells[3,StringGrid1.rowcount]:=Edit4.text; //Memo1.lines.Add('communicator.exe -x 10.43.121.15:8080 -u inet -p inet rosreestr f238c1505fb881dd3da64241dc2a0739', x ,'"Vashi dokumenti:', y ,'gotovy'); end; 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; // создание Excel-OLE объекта XLApp := CreateOleObject('Excel.Application' ); try // скрыть Excel XLApp.Visible := False; // открыть книгу 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(xlCellType LastCell, 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.SpeedButton4Click(Sender: TObject); begin if Xls_To_StringGrid(StringGrid1, 'C:\Книга1.xlsx') then ShowMessage('Данные перенесены!'); StringGrid1.rowcount:=StringGrid1.r owcount+1; StringGrid1.Cells[0,StringGrid1.rowcount]:=Edit3.text; StringGrid1.Cells[3,StringGrid1.rowcount]:=Edit4.text; Label2.Caption:='Записей в листе: '+IntToStr(StringGrid1.RowCount); end; end. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Bat | zumm | Общие вопросы Delphi | 5 | 31.07.2010 12:10 |
.bat | антипахмелин | Помощь студентам | 3 | 30.07.2010 23:17 |
Bat | ЭдуардPhp | Операционные системы общие вопросы | 3 | 04.06.2010 19:33 |
*.bat | hov | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 8 | 12.02.2010 19:11 |
*.bat | Ivan_assm | Помощь студентам | 2 | 02.11.2007 13:26 |