Delphiでcsvファイルに罫線を引きたいのですが、どうしたらよいですか?
ついでに、csvファイルの列幅変更のやり方もおねがいします。
たぶん、これって初歩的な質問なんでしょうね。すいません。
A,B,C,D,E
F,G,H,I,J
を
A|B|C|D|E
F|G|H|I|J
こんな風にするってことでしょうか?
列幅変更とは
A | B| C| D| E
F | G| H| I| J
こんなことでしょうか?
お返事ありがとうございます。
Microsoft Excel CSVファイルで
あいう えお かき くけこ
↓
|‾‾‾‾|‾‾‾|‾‾‾|‾‾‾|
|あいう |えお |かき |くけこ|
|____|___|___|___|
このような感じにしたいのですが、わかりにくくてすいません。
↑
すこしずれました(#^.^#)
基本的なことで質問ですが、Excel上でってことですか?
CSVファイルは「コンマ区切りファイル」のことなので、
エクセルだけのファイルではないのです。
Excel上で行うならばVBA(Excel上で動くマクロ)を使うのが最も効率が良いと思います。
それとも、テキストで罫線を表現したいのでしょうか?
さらに付け加えると、CSVファイルで罫線情報は保存されません。
桁幅や、桁の種類などの属性も保存されません。
値のみです。
あっっ、そうなんですか・・・(^v^)
おおボケかましちゃいましたね。すいません;
PC初心者なので許してください。
あの・・・改めて質問ですが、Excelにcsvファイルを外部データとして、取り込むにはどうしたらよいですか?おねがいします。
バージョンがかかれていないので、Delphi7Pro+Office2000の環境での実現方法です。
procedure PasteStringsToExcel(Sheet: TExcelWorksheet; Row, Col: Integer; StringList: TStringList);
var
CellList: TStringList;
strarr: array of array of String;
RowCount, ColCount: integer;
R,C: integer;
begin
CellList := TStringList.Create;
CellList.CommaText := StringList[0];
RowCount := StringList.Count;
ColCount := CellList.Count;
SetLength(strarr, RowCount, ColCount);
for R := 0 to RowCount - 1 do
begin
CellList.CommaText := StringList[R];
for C := 0 to ColCOunt - 1 do
begin
if C < CellList.Count then
strarr[R,C] := CellList[C]
else
strarr[R,C] := '';
end;
end;
CellList.Free;
Sheet.Range[Sheet.Cells.Item[Row, Col], Sheet.Cells.Item[Row + RowCount - 1, Col + ColCount - 1]].Value := strarr;
SetLength(strarr, 0, 0);
end;
このような関数を用意して、次のように呼べばできます。
procedure TForm1.Button1Click(Sender: TObject);
var
StringList: TStringList;
begin
StringList := TStringList.Create;
StringList.LoadFromFile(ExtractFilePath(Application.ExeName) + 'test.txt');
ExcelApplication1.Connect;
ExcelApplication1.Visible[0] := True;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(Null, 0));
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets['Sheet1'] as _Worksheet);
ExcelWorksheet1.Activate;
PasteStringsToExcel(ExcelWorksheet1, 2, 1, StringLIst);
end;
QueryTables.Addを使ってみたのですが、うまくいきませんでした。
Macroを呼ぶ方が簡単かもしれません。
# 未確認です
にしのさん、ありがとうございます(^^♪。できました。
ちなみに環境はWin:xp,Delphi:6(Enterprise),Excel:2002でした。
みなさん、アドバイスほんと助かりました。
また、質問すると思うので、そのときはよろしくお願いします。
ツイート | ![]() |