exportovanie dát z VB do excelu

Programovacie jazyky, rady, poradňa...
iWin
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 958
Registrovaný: 04 aug 2010, 14:30
Bydlisko: NR

exportovanie dát z VB do excelu

Príspevok od používateľa iWin »

Zdravím,

Potreboval by som otcovi prerobiť jeden jeho "program/databázu" ani neviem ako to presne pomenovať.

Vec je taká, že ten program/DB slúži na exportovanie dát do excelovského dokumentu (do konkrétnych buniek) proste je spravený nejaký template v excely kde cez acess len nahodia doplňujúce údaje (je to spravené v accessy 97)

Ten súbor sa v novšom office neotvorí.. Tak ma napadlo, že by som to prerobil...

No problém je, že v accessi a exceli mám skúsenosti nulové takže buď nejaký tutoriál na to.
Ďalšia verzia je že by som to spravil cez Visual Basic.. s tým mám tiež "veľké" skúsenosti typu jednoduchá kalkulačka.

Jedná sa o soft pre autopožičovňu a bolo by do toho treba zapojiť aj DB (pre jednotlivé autá v požičovni) a potom som uvažoval nad tým, že dáta ako napr Meno klienta, číslo OP a ostatné údaje by sa exporotovali po zadaní do textboxu.

Je vôbec niečo takéto cez VB možné? Alebo nejaké alternatívy?

Nejaké tipy ohľadom tohto? Ak poznáte ohľadom toho nejaký video tutoriál (aj textový a pokojne aj v angličtine) tak by som sa potešil :)
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: exportovanie dát z VB do excelu

Príspevok od používateľa axxis »

VB je jazyk, ktory bol dlhu dobu najvhodnejsi pre pracu s balikom office, vdaka rozsiahlemu API a podpore v samotnom jazku. V poslednej dobe to vsak uz dorobili aj do C# takze si mozes vybrat, ktory Ti viac vyhovuje.


Vseobecne existuju 3 pristupy, pomocou ktorych to mozes vyriesit. Ak mas nainstalovany balik office mal by si mat aj kniznice na ovladanie, s ktorymi pracovat je extremne jednoduche. Len si instaciujes spravnu triedu, ktora reprezentuje celu aplikaciu Excel (ano, taka trieda existuje) a uz len pouzivas jej rozhranie.

Dalsia metoda je pracovat s tym ako s XML, aj ked tak dokumenty office na prvy pohlad nevyzeraju jedna sa o XML subory, ktore sa daju normalne citat a modifikovat programovo (tento pristup by som Ti vsak velmi neodporucal kedze sa to moze zvrhnut vo velmi komplikovanu zalezitost)

Posledny sposob je pristupovat k obsahu priamo pomocou moznosti jazyka. .NET trochu prekvapivo ponuka moznost pisat SQL query nad excelovskymi dokumentami (tuto moznost som vyuzival ja, ale priznam sa, ze ja som to pouzil iba na citanie, nie na zapis. moja uloha bola presne opacna od Tvojej - exportovat excely do DB)



tu mas triedu, co vie citat exceli

Kód: Vybrať všetko

//Triede je potrebne v kostruktore zadat cestu k .xlsx suboru, ktory sa potom pokusi ulozit do listu na sharepointe
	public class Importer
	{
		string filePath = @"";

		public TMobileImporter(string filePath)
		{
			this.filePath = filePath;
		}
		public DataSet getExcelDataSet(string tableName)
		{
			// Create connection string variable. Modify the "Data Source"
			// parameter as appropriate for your environment.
			String sConnectionString = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;
													   Data Source={0};
													   Extended Properties=Excel 12.0 Xml;", filePath);

			// Create connection object by using the preceding connection string.
			OleDbConnection objConn = new OleDbConnection(sConnectionString);

			// Open connection with the database.
			objConn.Open();

			// The code to follow uses a SQL SELECT command to display the data from the worksheet.

			// Create new OleDbCommand to return data from worksheet.
			OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [List1$]", objConn);

			// Create new OleDbDataAdapter that is used to build a DataSet
			// based on the preceding SQL SELECT statement.
			OleDbDataAdapter objAdapter = new OleDbDataAdapter();

			// Pass the Select command to the adapter.
			objAdapter.SelectCommand = objCmdSelect;

			// Create new DataSet to hold information from the worksheet.
			DataSet objDataset = new DataSet();

			// Fill the DataSet with the information from the worksheet.
			objAdapter.Fill(objDataset, tableName);
			
			// Bind data to DataGrid control.
			// Clean up objects.
			objConn.Close();
			return objDataset;
		}

	   
	}
a tu je jej pouzitie

Kód: Vybrať všetko

Importer tmi = new Importer(@"C:\cesta\testexcel.xlsx");
//XLData je nazov tabulky, ktoru si DataSet interne vytvori, nazov moze byt akykolvek 
//ale pri zmene je potrebne zmenit ho aj vo volani objDataset.Tables["XLData"].DefaultView
DataSet objDataset = tmi.getExcelDataSet("XLData");
kedze pracujes s obycajnym DataSetom verim, ze Ti to dovoli aj zapisovat.
Napísať odpoveď