Diskuze: Formátování Excel 2

C# .NET .NET (C# a Visual Basic) Formátování Excel 2 American English version English version

Avatar
Maros2470
Člen
Avatar
Maros2470:

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):

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
Nesnáším {}, proto se jim vyhýbám.
Avatar
vodslon
Člen
Avatar
vodslon:

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:

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:

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:

A co to je? VBA?

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

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):

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
Nesnáším {}, proto se jim vyhýbám.
Avatar
Miroslav Holubek:

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:

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:

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:

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:

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.