IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Maros2470
Člen
Avatar
Maros2470:7.7.2014 18:39

Zdravím, ptám se ještě jednou, snad mi někdo poradí.
Provádím export z dataGridu do Excelu a potřeboval bych poradit jak lze naformátovat buňky Excelu. Zatím to mám napsáno takto:

private void cenikExportButton_Click(object sender, EventArgs e)
         {

             Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
             Workbook wb = excel.Workbooks.Add(XlSheetType.xlWorksheet);
             Worksheet ws = (Worksheet)excel.ActiveSheet;
             excel.Visible = true;

             ws.Cells[1, 1] = "Ceník ze dne: " + DateTime.Now.Date;
             ws.Cells[2, 1] = "Vypracoval: " + uzivatel;
             ws.Cells[4, 1] = "Zboží";
             ws.Cells[4, 2] = "Množství";
             ws.Cells[4, 3] = "Jednotka";
             ws.Cells[4, 4] = "Cena (Kč)";



             for (int j = 5; (j - 4) <= cenikDataGrid.Rows.Count; j++)
             {
                 for (int i = 1; i <= 4; i++)
                 {
                     ws.Cells[j, i] = cenikDataGrid.Rows[j - 5].Cells[i + 2].Value;
                 }

             }
         }

Stačilo by i to jak tento export uložit do šablony Excel.
Díky za rady.

 
Odpovědět
7.7.2014 18:39
Avatar
Odpovídá na Maros2470
Michal Žůrek - misaz:7.7.2014 18:45

když ti nikdo neporadil poprvé nejspíš ti neporadí ani podruhé. Tak to prosím tě nezakládej potřetí.

 
Nahoru Odpovědět
7.7.2014 18:45
Avatar
vodslon
Člen
Avatar
vodslon:16.7.2014 8:09

Ahoj,

Máš tedy nějaký datagrind s daty, vytvoříš excel což tam máš a naplníš ho hodnotami.

Na formátování myslíš něco typu:

Microsoft.Offi­ce.Interop.Ex­cel.Range horni = ws.get_Range("A1", "B4");
horni.Font.Bold = true;
horni.Font.Color = Color.Red;

uložení můžeš udělat tak, že Workbook wb má metodu SaveAs

Doufám, že chápu správně dotaz :)

Editováno 16.7.2014 8:10
 
Nahoru Odpovědět
16.7.2014 8:09
Avatar
Maros2470
Člen
Avatar
Odpovídá na vodslon
Maros2470:16.7.2014 14:53

Díky

 
Nahoru Odpovědět
16.7.2014 14:53
Avatar
Maros2470
Člen
Avatar
Odpovídá na vodslon
Maros2470:16.7.2014 19:32

Měl bych ještě dotaz. Úpravu textu, ohraničení a pod. jsem zvládl. Nevím, ale jak nastavit zarovnání na střed buňky, nebo na střed výběru a jak nastavit formátování u buněk, u kterých vím jen počet sloupců, ale nevím počet řádků, protože ten se bude měnit na základě zadaných dat. Může být jeden řádek, nebo taky 100.

 
Nahoru Odpovědět
16.7.2014 19:32
Avatar
Maros2470
Člen
Avatar
Odpovídá na vodslon
Maros2470:16.7.2014 19:59

Takže už mi chybí jen jak nastavit zarovnání na střed buňky a na střed výběru. Na ostatní jsem už přišel.

 
Nahoru Odpovědět
16.7.2014 19:59
Avatar
H*falk*W
Člen
Avatar
H*falk*W:17.7.2014 5:45

A co to je? VBA?

 
Nahoru Odpovědět
17.7.2014 5:45
Avatar
Odpovídá na Maros2470
Michal Štěpánek:17.7.2014 9:00

A nedalo by se to nastavit přímo v té šabloně?

Nahoru Odpovědět
17.7.2014 9:00
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na H*falk*W
Michal Žůrek - misaz:17.7.2014 10:40

Visual Basic for Appliactions - Visual Basic, který je implementován do některých aplikací a umožňuje ovládat tyto aplikaci programově - pomocí Visual Basicu. Implementuje to třeba Word, Excel, PowerPoint, Auto CAS, Corel, ... .

 
Nahoru Odpovědět
17.7.2014 10:40
Avatar
Miroslav Holubek:17.7.2014 11:52

ja mam par veci uz odskusanych, pridam take ku ktorym mam teraz pristup ale je to vo VB.NET

tak na otocenie listu na sirku je

oSheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape

aby bolo vidno cely text v bunke

oSheet.Columns.AutoFit()

oramovanie

oSheet.Range("A1:A2").Borders.LineStyle = BorderStyle.FixedSingle

co ja nemam odskusane, ale mohlo by ti to pomoct zo zarovanim na stred je

With oSheet.Range("A1", "ZZ1")
          .Font.Bold = True
          .VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
          .HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter
          .EntireColumn.AutoFit()
          .EntireRow.AutoFit()
End With

dalsie uzitocne rady k tomu najdes napriklad tu

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting%28v=vs.110%29.aspx
 
Nahoru Odpovědět
17.7.2014 11:52
Avatar
Maros2470
Člen
Avatar
Odpovídá na Miroslav Holubek
Maros2470:17.7.2014 18:53

Díky, moc mi to pomohlo, už vím jak na to.

 
Nahoru Odpovědět
17.7.2014 18:53
Avatar
Odpovídá na Maros2470
Miroslav Holubek:17.7.2014 19:11

v poho, len teraz kukám že odkaz čo som ti tu dal je na niečo úplne iné čo som mal ja otvorené :D tak sa ospravedlňujem :D

 
Nahoru Odpovědět
17.7.2014 19:11
Avatar
Maros2470
Člen
Avatar
Odpovídá na Miroslav Holubek
Maros2470:17.7.2014 21:19

Jestli máš odkaz na ten Excel, tak mi ho prosím napiš. Díky

 
Nahoru Odpovědět
17.7.2014 21:19
Avatar
Odpovídá na Maros2470
Miroslav Holubek:6.5.2015 11:33

viem ze odpovedam oneskorene, ale ak sa to niekomu do buducnosti hodi

https://siddharthrout.wordpress.com/vb-net-and-excel/
 
Nahoru Odpovědět
6.5.2015 11:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.