첫눈 님이 쓰신 글 :
: 제목 그대로입니다.
: 라자루스에서 .xlsx파일을 읽고 써야 하는데요.
: 그 방법 좀 알려주시면 감사하겠습니다
: .
패키지 매니저-온라인 에서 fpspreadsheetgrid 설치후
TsWorksheetGrid 컨트롤 사용이 가능해집니다.
출처 :
https://forum.lazarus.freepascal.org/index.php?topic=48185.0
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
fpspreadsheetgrid, fpspreadsheetctrls, fpstypes,
xlsxooxml; // THIS MUST BE ADDED
procedure TForm1.Button1Click(Sender: TObject);
var
filename : string;
begin
filename := Application.Location + 'file.xlsx';
if FileExists(filename) then
begin
sWorksheetGrid1.LoadFromSpreadsheetFile(filename, sfOOXML);
end else begin
ShowMessage('File not exists: ' + filename);
end;
end;
---------------------------------------
출처 :
https://wiki.freepascal.org/FPSpreadsheet_tutorial:_Writing_a_mini_spreadsheet_application
sfOOXML; // Excel 2007+
sfExcel8; // Excel 97-2003
sfExcel5; // Excel 5.0
sfExcel2; // Excel 2.1
sfOpenDocument; // Open/LibreOffice
sfCSV; // Text files
--------------------------------------------
아래는 제가 엑셀2007 exampl1.xlsx 파일을 테스트 해본 예제입니다.
첨부파일을 참고하세요...
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
xlsxooxml, fpstypes, fpspreadsheetgrid;//2020.11.27
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
sWorksheetGrid1: TsWorksheetGrid;//2020.11.27 fpspreadsheetgrid 패키지 설치하면 사용할수 있는 컨트롤
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
MyDir : String; //2020.11.27
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
MyDir := ExtractFilePath(ParamStr(0));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
fmt: TsSpreadsheetFormat;
begin
ShowMessage(Mydir + 'example1.xlsx');
fmt:=sfOOXML;
sWorkSheetGrid1.LoadFromSpreadsheetFile(Mydir + 'example1.xlsx', fmt);
end;
end.