Cell formázás az Excel
cellaformázást excel
Hogyan programból formázza a sejtek excel (például, hogy egy cellában egy szöveges formátumban, módosítsa az oszlop szélességét, stb)
Egyszer régen foglalkozik ezzel a problémával, itt van egy darab kódot,
Valószínűleg nem lehet tenni, és valahogy más, ez csak egy lehetőség
A válasz a kérdésre.
eljárás TFMenu21.RadioButton5Click (Sender: TObject);
const
xlCenter = -4108;
XLWBatWorksheet = -4.167; // létrehozni egy könyvet egy oldal
var
XL. OleVariant;
x, i, először. integer; // első átnevezésére nevű oldal „Munka1”
x1, y1. integer; // válassza ki a tartományban az Excel
kezdődik
megpróbál
// Excel már fut?
XL: = GetActiveOleObject ( "Excel.Application");
ShowMessage ( „Te már betöltött Excel.Zavershite munkáját, majd ismételje meg a következtetést”);
xl.Application.WindowState: = - 4137;
//xl.Visible:=True;
xl.Quit;
XL: = Unassigned;
Kilépés;
kivéve
// Nem, még nem.
XL: = CreateOleObject ( "Excel.Application");
végén;
xl.Workbooks.Add [XLWBatWorksheet];
// xl.Visible: = True;
első: = 1;
x1: = 0;
Y1: = 0;
Az I: = 3 downto 1 do kezdődik
X: = 2;
Ha az első = 0, akkor xl.Workbooks [1] .Worksheets.Add mást első: = 0;
Ha i = 1, akkor
kezdődik
xl.Range [xl.Cells [x, 2], xl.Cells [x + 1,14]] MergeCells: = True ;. // cellákat egyesíteni
xl.Range [xl.Cells [x, 2], xl.Cells [x + 1,14]] WrapText: = True ;. // sortörés
xl.Workbooks [1] .Worksheets [1] .name: = "oldal neve";
// I levezetni néhány sapka táblázatban
X: = x + 1;
xl.Range [xl.Cells [x, 2], xl.Cells [x + 2,2]] MergeCells: = True ;. // cellákat egyesíteni
xl.Cells [x, 2] = "1 bar";
xl.Range [xl.Cells [x, 3], xl.Cells [x + 1,4]] MergeCells: = True ;. // cellákat egyesíteni
xl.Cells [x, 3]: = "2. oszlop";
// I levezetni adatok Ttable (DM.TsvodD1) Excel
DM.TSvodD1.Open;
DM.TSvodD1.First;
x1: = x; // tároljuk eredeti vonal
Bár nem DM.TSvodD1.Eof csinálni
kezdődik
xl.Workbooks [1] .WorkSheets [1] .Activate;
xl.ActiveWindow.DisplayZeros: = False; // kihagyja a nullák
xl.ActiveWindow.DisplayGridlines: = False; // rács elrejtéséhez
// Bold xl.Range [xl.Cells [x, 2], xl.Cells [x, 2]] Font.Bold: = True ;.
xl.Cells [x, 2]: = DM.TSvodD1F.Value;
ha DM.TSvodD1T.Value = 1, akkor xl.Cells [x, 3]: = '<0.2";
ha DM.TSvodD1T.Value = 2, akkor xl.Cells [x, 3]: = "0,2-0,3";
// ha DM.TSvodD1T.Value = 3, akkor xl.Cells [x, 3]: = "> 0,3";
ha DM.TSvodD1T.Value = 3, akkor xl.Cells [x, 3]: = "0.5";
. Xl.Range [xl.Cells [x, 7], xl.Cells [x, 7]] NumberFormat: = "@"; // a szöveg formátumát a sejt
xl.Cells [x, 14]: = DM.TSvodD1Proc.Value;
X: = x + 1;
DM.TSvodD1.Next;
végén; // miközben nem TSvodD1.Eof
y1: = x-1; // tároljuk az utolsó sor
// az eredmény kimentése
xl.Workbooks [1] .WorkSheets [1] .Rows.Rows [x] .RowHeight: = 44,25; // sormagassága
xl.Range [xl.Cells [x, 2], xl.Cells [x, 14]] WrapText: = True ;.
// formázása
. Xl.Workbooks [1] .worksheets [1] .Range [xl.Cells [1,2], xl.Cells [x, 14]] VerticalAligment: = 2;
xl.Workbooks [1] .worksheets [1] .Range [xl.Cells [X-3,2], xl.Cells [x, 14]] HorizontalAligment: = xlCenter ;. // kijelző közepén a sejt
xl.Workbooks [1] .worksheets [1] .Range [xl.Cells [X-3,2], xl.Cells [x, 14]] Font.Bold: = True ;.
xl.Workbooks [1] .worksheets [1] .Range [xl.Cells [X-3,3], xl.Cells [x-3,14]] Borders.Weight: = 2 ;.
// szélességének beállításához oszlopok
xl.Workbooks [1] .worksheets [1] .Columns.Columns [1] .ColumnWidth: = 2,43;
// cellahatár
xl.Workbooks [1] .worksheets [1] .Range [xl.Cells [x1,2], xl.Cells [y1,2]] NumberFormat: = "0,0" ;.
. Xl.Range [xl.Cells [x1,4], xl.Cells [y1,4]] NumberFormat: = "0,0";
Akkor könnyebb, Excel elindul, fut a makró felvétel, és amit akar, ahogy vormatirovanie szöveges telepítés a cella szélessége, igen semmit, és aztán majd meglátjuk, mit kell előállítania a Visual Basice.
> Valera (13.05.03 09:14
legmenőbb módon, én is ezt, de meg kell vizsgálni, mi a kód VB más lesz: a listán peremmennyh, tárgyak és tulajdonságok, amelyek elérhetők a Delphi. De nincs több munka lesz, hogy kitaláljuk, mi az, ami.
Köszönöm Tatiana, megpróbálom.