CSV 형식으로 저장할 때 멀티 라인을 사용하시려면
문자열을 "" 로 감싸고 줄이 바뀌는 부분은 \n 또는 \r\n을 사용합니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
StringGrid1->Cells[1][1] = "TEST\nLINE";
AnsiString sSaveStr = "\"" + StringGrid1->Cells[1][1] + "\"";
FILE * fp = fopen("c:\\Test.csv", "w");
fprintf(fp, sSaveStr.c_str());
fclose(fp);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
TGridDrawState State)
{
if(ACol > 0 && ARow > 0) {
StringGrid1->Canvas->Brush->Color = clWhite;
StringGrid1->Canvas->FillRect(Rect);
DrawText( StringGrid1->Canvas->Handle, StringGrid1->Cells[ACol][ARow].c_str(),-1,&Rect, dtaLeft);
}
}
쉬운 방법은 일단 csv 파일을 만드시고 엑셀로 열어서 원하는 부분에 멀티 라인을 입력하고
그래도 저장한 후에 csv 파일을 텍스트로 열어 봅니다. 그러면 해당 셀의 값이 ""로 감싸있는 것을 볼 수 있을 겁니다.
그리고 라인이 바뀌는 부분은 공백처럼 보이는데 이는 0x0A 값으로 \n에 해당되는 값입니다.
cvs 파일을 헥사 에디터로 열어서 보시면 알 수 있습니다.
엑셀파일을 엑셀 프로세스 없이 읽고 쓰는 방식이 자료실에 올려져 있습니다.
csv 형식이 아닌 xls 형식으로 저장 및 읽기가 가능합니다.
참고하세요.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_res&no=687
StringGrid 님이 쓰신 글 :
:
: 송신영님
:
: 제가 원했던 부분이 제대로 질문이 되지 못했던것 같습니다.
:
: 다시 한번 질문 해봅니다. 죄송합니다ㅠㅠ
:
: StringGrid에서의 한셀에 2줄 텍스트로 입력된 텍스트들을 엑셀의 한 셀에 2줄 텍스트를 그대로 저장하고자 했습니다.
:
: 그런데 답변 해주셨던 StringGrid->Cell[ACol][ARow]의 경우는 Text는 반환되지만 엑셀에 저장을 해보니
:
: 그대로 저장이 되지 않아 질문을 달았던거였습니다.
:
:
: 현재 StringGrid에서 Excel로의 Text 저장소스입니다.
: StringGrid1에서는 DrawText를 하기때문에 StringGrid2에 Text data를 저장하여 Excel에 뿌려주려고합니다.
:
: AnsiString sContents;
: for(int iRow=0;iRow<StringGrid2->RowCount;iRow++){
: for(int iCol=0;iCol<StringGrid2->ColCount;iCol++){
: sContents= sContents+ StringGrid2->Cells[iCol][iRow]+AnsiString(",");
: }
: sContents= sContents+AnsiString("\r\n");
: }
:
: AnsiString sFileName ="C:\\DB\\Schedule Data.csv";
:
: int iFileHandle=FileCreate(sFileName);
: FileWrite(iFileHandle,sContents.c_str(),sContents.Length());
: FileClose(iFileHandle);
:
: 혹시 어찌해야 StringGrid->Cell[][] = Text + "/n" + Text;되어있는 Text data를 excel에 그대로 뿌려줄수있을까요
:
: 답변 달아 도움주셔서 정말 감사합니다. ^^
: