Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Recenzije
  • Spremanje dokumenta proračunske tablice u Excel 1c. Trikovi za spremanje tabličnog dokumenta u Excelu za daljnji rad s njim

Spremanje dokumenta proračunske tablice u Excel 1c. Trikovi za spremanje tabličnog dokumenta u Excelu za daljnji rad s njim

Za daljnji rad s podacima primljenim u dokumentu proračunske tablice iz sustava 1C bilo koje verzije, oni se mogu spremiti u formatu xls (x).

Sve bi bilo u redu, ali kada ga otvori u Excelu, korisnik odmah shvati da nešto nije u redu sa tablicom, pa, da, nema prečaca do listova knjige. %)

To je bio slučaj u 7. verziji 1C i migrirao je u 8., da, ima napretka, u 8. možete spremiti u formatu xlsx, izvorni format najnovijih verzija programa Excel.

Za rješavanje problema postoji nekoliko jednostavnih manipulacija, prva stvar koja pada na pamet bilo kojem korisniku je spremanje tablice u drugom formatu, ali ni ovdje nema željenog rezultata, a zatim počinjemo kopirati i zalijepiti u novu knjigu Excel.
Postoji još jedna opcija, kao za napredne korisnike, - ovo je otići na postavke Excel i u odjeljku Napredno označite okvir "Prikaži oznake listova". To je ispravno, ali i rutinski, s obzirom na čestu obradu podataka dobivenih iz 1C u obliku ravnih tablica i daljnju analizu podataka u obliku pivot tablica i drugih načina prikaza podataka u Excelu.

I sam sam se umorio od štikliranja na isti način i riješio sam problem čeprkajući po internetu, na primjer, i gledajući neke druge razvoje, uspio sam implementirati jednostavno (nekome harmonika, nekome štaka, međutim, o ukusima nema rasprave) mehanizam automatizacije Rješavanje problema s prikazom naljepnica na listovima.

Sve što trebate učiniti je koristiti dva svojstva prozora programa Excel:

DisplayWorkbookTabs // indikator za prikaz kartica lista radne knjige TabRatio // omjer širine područja kartica radne knjige i širine vodoravne trake za pomicanje prozora (kao broj između 0 (nula) i 1, zadana vrijednost 0,6)

TabDocument.Write(FullFileName, TabularDocumentFileType.XLS); Excel = Novi COMObject("Excel.Aplikacija"); Excel.WorkBooks.Open(FullFileName); Excel.Visible = 0; Excel.ActiveWindow.DisplayWorkbookTabs = 1; Excel.ActiveWindow.TabRatio = 0,6; Puno ime = Excel.ActiveWorkbook.Puno ime; Excel.DisplayAlerts = false; Excel.ActiveWorkbook.SaveAs(Puno ime, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013 //Excel.Visible = 1; // ako trebate dalje raditi s knjigom
//Excel.Application.Quit() //ako samo izađemo

TabDocument.Write(FullFileName, "XLS"); Excel = CreateObject("Excel.Application"); Excel.WorkBooks.Open(FullFileName); Excel.Visible = 0; Excel.ActiveWindow.DisplayWorkbookTabs = 1; Excel.ActiveWindow.TabRatio = 0,6; Puno ime = Excel.ActiveWorkbook.Puno ime; Excel.DisplayAlerts = false; Excel.ActiveWorkbook.SaveAs(Puno ime, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013 //Excel.Visible = 1; // ako trebate dalje raditi s knjigom
//Excel.Application.Quit() //ako samo izađemo

Ova metoda je jednostavna. Njegova je bit u tome da objekt Tablični dokument ima metode:

  • Zapiši (< ИмяФайла>, < ТипФайлаТаблицы >) za učitavanje podataka u datoteku;
  • Čitati (< ИмяФайла>, < СпособЧтенияЗначений >) za učitavanje podataka iz datoteke.

Pažnja!

Metoda Write() dostupna je i na klijentu i na poslužitelju. Metoda Read() dostupna je samo na strani poslužitelja. Ovo treba zapamtiti
pri planiranju interakcije klijent-poslužitelj.

Pogledajmo primjer spremanja dokumenta proračunske tablice u datoteku. Potrebno je na bilo koji način kreirati i popuniti objekt TabularDocument i iskrcavanje u datoteku se vrši samo jednim redom:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Ovdje TabDoc- generirani tablični dokument, Put do datoteke— naziv datoteke za učitavanje, TabularDocumentFileType.XLSX— format stvorene datoteke. Podržani su sljedeći Excel formati:

  • XLS95 - Excel 95 format;
  • XLS97 - Excel 97 format;
  • XLSX je Excel 2007 format.

TabDoc = Novi tabularni dokument;
TabDoc . Read(PathToFile, Method of ReadingTabularDocumentValues.Value);

Ovdje Put do datoteke— put do preuzete Excel datoteke. Metoda čitanja vrijednosti tabelarnog dokumenta. Vrijednost određuje kako treba interpretirati podatke pročitane iz izvornog dokumenta. Dostupne opcije:

  • Značenje;
  • Tekst.

Razmjena putem OLE

Razmjena putem tehnologije automatizacije OLE možda je najčešća opcija za programski rad s Excel datotekama. Omogućuje korištenje svih funkcija koje nudi Excel, ali je sporiji u usporedbi s drugim metodama. Za razmjenu putem OLE potrebna je instalacija MS Excela:

  • Na računalu krajnjeg korisnika, ako se razmjena odvija na strani klijenta;
  • Na poslužiteljskom računalu 1C:Enterprise, ako se razmjena odvija na strani poslužitelja.

Primjer iskrcavanje:

// Kreirajte COM objekt
Excel = Novi COMObject("Excel.Aplikacija");
// Onemogući upozorenja i pitanja
Excel . DisplayAlerts = False;
// Stvaranje nove knjige
Knjiga = Excel. Radne bilježnice. Dodati();
// Pozicija na prvom listu
List = Knjiga. Radni listovi(1);

// Upišite vrijednost u ćeliju
List . Ćelije (Broj reda, Broj stupca). Vrijednost = CellValue;

// Spremite datoteku
Knjiga . Spremi kao (naziv datoteke);


Excel . Prestati();
Excel = 0;

Primjeri čitanje:

// -- OPCIJA 1 --

// Kreirajte COM objekt
Excel = Novi COMObject("Excel.Aplikacija");
// Otvorite knjigu
Knjiga = Excel. Radne bilježnice. Otvoren( Put do datoteke );

List = Knjiga. Radni listovi(1);

// Zatvaranje knjige
Knjiga . Zatvori(0);

// Zatvorite Excel i oslobodite memoriju
Excel . Prestati();
Excel = 0;

// —— OPCIJA 2 ——

// Otvorite knjigu
Knjiga = GetCOMObject( Put do datoteke );
// Pozicioniranje na željeni list
List = Knjiga. Radni listovi(1);

// Očitajte vrijednost ćelije, obično se ovdje nalazi petlja obilaženja ćelije
CellValue = List. Ćelije (Broj reda, Broj stupca). Vrijednost;

// Zatvaranje knjige
Knjiga . Primjena. Qui t();

Za zaobići Za sve dovršene retke Excel radnog lista možete koristiti sljedeće tehnike:

// -- OPCIJA 1 --
Broj redaka = list. Ćelije(1 , 1 ). Posebne ćelije(11). Red;
Za broj redaka = 1 po broju redaka ciklus
CellValue = List. Ćelije (Broj reda, Broj stupca). Vrijednost;
EndCycle;

// —— OPCIJA 2 ——
BrojReda = 0;
Dok je Ciklus istine
BrojReda = BrojReda + 1 ;
CellValue = List. Ćelije (Broj reda, Broj stupca). Vrijednost;
Ako NIJE ValueFilled(CellValue) Zatim
Prekid;
završi ako;
EndCycle;

Umjesto da uzastopno prelazite sve retke lista, možete ispisati sve podatke u polje i raditi s njim. Ovaj će pristup biti brži pri čitanju velike količine podataka:

TotalColumns = List. Ćelije(1 , 1 ). Posebne ćelije(11). Stupac;
TotalRows = List. Ćelije(1 , 1 ). Posebne ćelije(11). Red;

Regija = List. Raspon (list. ćelije (1, 1), list. ćelije (ukupno redaka, ukupno stupaca));
Podaci = Regija. Vrijednost. Istovariti();

Donja tablica prikazuje najpopularnija svojstva i metode za rad s Excelom putem OLE-a:

Akcijski Kodirati Komentar
Rad s aplikacijom
Postavljanje vidljivosti prozora aplikacije Excel . Vidljivo= Netočno;
Postavljanje načina izlaza upozorenja (prikaz/neprikaz) Excel . DisplayAlerts= Netočno;
Zatvaranje aplikacije Excel . Prestati();
Rad s knjigom
Stvaranje nove knjige Knjiga = Excel. Radne bilježnice. Dodati();
Otvaranje postojeće radne knjige Knjiga = Excel. Radne bilježnice. Otvori (naziv datoteke);
Spremanje knjige Knjiga . Spremi kao(naziv datoteke);
Zatvaranje knjige Knjiga . Zatvori(0);
Rad s listom
Postavljanje trenutnog lista List = Knjiga. Radni listovi (Broj lista);
Postavljanje imena List . Ime = Ime;
Postavljanje zaštite List . Zaštititi();
Uklanjanje zaštite List . Ukloni zaštitu();
Postavljanje orijentacije stranice List . Podešavanje stranice. Orijentacija = 2; 1 - portret, 2 - pejzaž
Postavljanje lijevog ruba List . Podešavanje stranice. Lijeva margina = Excel. Centimetri u točke (Centimetri);
Postavljanje gornje granice List . Podešavanje stranice. TopMargin = Excel. Centimetri u točke (Centimetri);
Postavljanje desne granice List . Podešavanje stranice. RightMargin = Excel. Centimetri u točke (Centimetri);
Postavljanje donje granice List . Podešavanje stranice. BottomMargin = Excel. Centimetri u točke (Centimetri);
Rad s redovima, stupcima, ćelijama
Postavljanje širine stupca List . Stupci(Broj stupca). ColumnWidth = Širina;
Brisanje retka List . Redovi (Broj reda). Izbrisati();
Uklanjanje stupca List . Stupci(Broj stupca). Izbrisati();
Brisanje ćelije List . Ćelije (Broj reda, Broj stupca). Izbrisati();
Postavljanje vrijednosti List . Ćelije (Broj reda, Broj stupca). Vrijednost = Vrijednost;
Spajanje ćelija List . Raspon (list. Ćelije (Broj retka, Broj stupca), List. Ćelije (Broj retka1, Broj stupca1)). Sjediniti();
Postavljanje fonta List . Ćelije (Broj reda, Broj stupca). Font. Naziv = Naziv Fonta;
Postavljanje veličine fonta List . Ćelije (Broj reda, Broj stupca). Font. Veličina = Veličina fonta;
Postavljanje podebljanog fonta List . Ćelije (Broj reda, Broj stupca). Font. Podebljano = 1 ; 1 - podebljano, 0 - normalno
Postavljanje kurziva List . Ćelije (Broj reda, Broj stupca). Font. kurziv = 1 ; 1 - kurziv, 0 - normalno
Postavljanje podcrtanog fonta List . Ćelije (Broj reda, Broj stupca). Font. Naglasiti = 2 ; 2 - podcrtano, 1 - nije

Kako biste saznali koje svojstvo treba promijeniti ili koju metodu pozvati, možete koristiti makronaredbe Excel. Ako snimite makronaredbu sa potrebnim radnjama, tada možete pogledati VBA kod snimljene makronaredbe.

Korištenje COMSafeArray

Prilikom preuzimanja velike količine podataka iz 1C u Excel, možete koristiti objekt za ubrzanje COMSafeArray. Prema definiciji pomoćnika za sintaksu, COMSafeArray je omotač objekta preko višedimenzionalnog polja SafeArray od COM. Omogućuje stvaranje i korištenje SafeArray za razmjenu podataka između COM objekata. Jednostavno rečeno, to je niz vrijednosti koje se mogu koristiti za razmjenu između aplikacija pomoću OLE tehnologije.

// Kreiraj COMSafeArray
ArrayCom = New COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// Punjenje COMSafeArray
Za Stranica = 0 prema TotalLines - 1 ciklus
Za Broj = 0 Ukupno stupaca - 1 ciklus
ArrayCom . SetValue(Broj, Stranica, Vrijednost);
EndCycle;
EndCycle;
// Dodjeljivanje područja Excel radnog lista vrijednostima iz COMSafeArray
List . Raspon (list. ćelije (1, 1), list. ćelije (ukupno redaka, ukupno stupaca)). Vrijednost = ArrayCom;

Razmjena putem ADO

Excel datoteka, kada se razmjenjuje putem ADO-a, baza je podataka kojoj se može pristupiti pomoću SQL upita. Instalacija MS Excela nije potrebna, ali morate imati ODBC driver s kojim će se pristupiti. ODBC upravljački program koji se koristi određuje se određivanjem niza povezivanja s datotekom. Obično je potrebni upravljački program već instaliran na računalu.

Razmjena putem ADO-a osjetno je brža od razmjene putem OLE-a, ali prilikom učitavanja nije moguće koristiti Excel funkcionalnost za dizajniranje ćelija, postavljanje stranica, postavljanje formula itd.

Primjer iskrcavanje:


Connection = New COMObject("ADODB.Connection");


Spoj . ConnectionString = "

|Izvor podataka=" + Naziv datoteke + ";
;
Spoj . Otvoren(); // Otvaranje veze

// Kreirajte COM objekt za naredbu
Naredba = Novi COMObject("ADODB.Naredba");
Tim

// Dodjeljivanje teksta naredbe za izradu tablice
Tim . Tekst naredbe = "KREIRAJ TABLICU [Sheet1] (Stupac1 char(255), Stupac2 datum, Stupac3 int, Stupac4 float)";
Tim . Izvršiti(); // Izvrši naredbu

// Dodjeljivanje teksta naredbe za dodavanje reda tablice
Tim . Tekst naredbe = "INSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) values ​​​​('abvwhere', '8/11/2017', '12345', '12345,6789')";
Naredba.Izvrši(); // Izvrši naredbu

// Uklonite naredbu i zatvorite vezu
Naredba = Nedefinirano;
Spoj . Zatvoriti();
Veza = Nedefinirano;

Da biste stvorili novi list i formirali njegovu strukturu, možete koristiti objekte ADOX.Katalog I ADOX.Tablica. U ovom slučaju kod će izgledati ovako:

// Stvaranje COM objekta za rad s knjigom
Knjiga = Novi COMObject("ADOX.Katalog");
Knjiga . ActiveConnection = Veza;

// Stvorite COM objekt za rad sa strukturom podataka na listu
Tablica = Novi COMObject("ADOX.Table");
Stol . Naziv = "Sheet1" ;
Stol . Stupci. Dodaj("Stupac1", 202);
Stol . Stupci. Dodaj("Stupac2", 7);
Stol . Stupci. Dodaj("Stupac3", 5);
Stol . Stupci. Dodaj("Stupac4", 5);

// Napravite list s opisanom strukturom u radnoj knjizi
Knjiga . Stolovi. Dodati (tablica);
Tablica = Nedefinirano;
Knjiga = Nedefinirano;

U gornjem primjeru, u metodi

Stol . Stupci. Dodati(“Kolona1”, 202);

drugi parametar specificira tip stupca. Parametar nije obavezan, evo nekih vrijednosti vrste stupca:

  • 5 - adDouble;
  • 6 - adCurrency;
  • 7 - datum oglasa;
  • 11 - adBoolean;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

Primjer čitanje:

// Kreirajte COM objekt za vezu
Connection = New COMObject("ADODB.Connection");

// Postavite niz veze
Spoj . ConnectionString = "
|Dobavljač=Microsoft.ACE.OLEDB.12.0;
|Izvor podataka=" + Naziv datoteke + ";
|Proširena svojstva=""Excel 12.0 XML;HDR=DA"";";
Spoj . Otvoren(); // Otvaranje veze

// Kreirajte COM objekt za primanje odabira
Odaberite = New COMObject("ADODB.Recordset");
Tekst zahtjeva = "SELECT * FROM [Sheet1$]";

// Izvrši zahtjev
Uzorak . Otvori(Tekst upita, Veza);

// Zaobići rezultat uzorka
Još nema izbora. EOF() petlja
Vrijednost stupca1 = odabir. Polja. Stavka ("Stupac1"). Vrijednost ; // Pristup prema nazivu stupca
Stupac2Vrijednost = Odabir. Polja. Stavka(0). Vrijednost; // Pristup indeksom stupca
Uzorak . Pomakni dalje();
EndCycle;

Uzorak . Zatvoriti();
Uzorak = Nedefinirano;
Spoj . Zatvoriti();
Veza = Nedefinirano;

U nizu veze parametar HDR određuje kako će se prvi redak na listu percipirati. Moguće opcije:

  • DA - prvi red se tretira kao naziv stupca. Vrijednostima se može pristupiti imenom i indeksom stupca.
  • NE - prvi red se tretira kao podatak. Vrijednostima se može pristupiti samo indeksom stupca.

Ovi primjeri pokrivaju samo nekoliko ADO objekata. ADO objektni model sastoji se od sljedećih objekata:

  • veza;
  • Naredba;
  • skup zapisa;
  • Snimiti;
  • polja;
  • potok;
  • greške;
  • parametri;
  • Svojstva.

Upload bez programiranja

Da biste spremili podatke iz 1C u Excel, nije uvijek preporučljivo pribjeći programiranju. Ako u Enterprise modu korisnik može prikazati podatke potrebne za preuzimanje, tada se oni mogu spremiti u Excel bez programiranja.

Da biste spremili dokument proračunske tablice (na primjer, rezultat izvješća), možete pozvati naredbu Uštedjeti ili Spremi kao… glavni izbornik.

U prozoru koji se otvori potrebno je odabrati direktorij, naziv i format spremljene datoteke.

Da biste spremili podatke s dinamičkih popisa (na primjer, popis stavki), morate:

  1. Ispis podataka u dokument proračunske tablice pomoću naredbe Više ⇒ Popis...;
  2. Spremite dokument proračunske tablice u traženom formatu.

Za daljnji rad s podacima primljenim u dokumentu proračunske tablice iz sustava 1C bilo koje verzije, oni se mogu spremiti u formatu xls (x).

Sve bi bilo u redu, ali kada ga otvori u Excelu, korisnik odmah shvati da nešto nije u redu sa tablicom, pa, da, nema prečaca do listova knjige. %)

To je bio slučaj u 7. verziji 1C i migrirao je u 8., da, ima napretka, u 8. možete spremiti u formatu xlsx, izvorni format najnovijih verzija programa Excel.

Za rješavanje problema postoji nekoliko jednostavnih manipulacija, prva stvar koja pada na pamet bilo kojem korisniku je spremanje tablice u drugom formatu, ali ni ovdje nema željenog rezultata, a zatim počinjemo kopirati i zalijepiti u novu knjigu Excel.
Postoji još jedna opcija, kao za napredne korisnike, - ovo je otići na postavke Excel i u odjeljku Napredno označite okvir "Prikaži oznake listova". To je ispravno, ali i rutinski, s obzirom na čestu obradu podataka dobivenih iz 1C u obliku ravnih tablica i daljnju analizu podataka u obliku pivot tablica i drugih načina prikaza podataka u Excelu.

I sam sam se umorio od štikliranja na isti način i riješio sam problem čeprkajući po internetu, na primjer, i gledajući neke druge razvoje, uspio sam implementirati jednostavno (nekome harmonika, nekome štaka, međutim, o ukusima nema rasprave) mehanizam automatizacije Rješavanje problema s prikazom naljepnica na listovima.

Sve što trebate učiniti je koristiti dva svojstva prozora programa Excel:

DisplayWorkbookTabs // indikator za prikaz kartica lista radne knjige TabRatio // omjer širine područja kartica radne knjige i širine vodoravne trake za pomicanje prozora (kao broj između 0 (nula) i 1, zadana vrijednost 0,6)

TabDocument.Write(FullFileName, TabularDocumentFileType.XLS); Excel = Novi COMObject("Excel.Aplikacija"); Excel.WorkBooks.Open(FullFileName); Excel.Visible = 0; Excel.ActiveWindow.DisplayWorkbookTabs = 1; Excel.ActiveWindow.TabRatio = 0,6; Puno ime = Excel.ActiveWorkbook.Puno ime; Excel.DisplayAlerts = false; Excel.ActiveWorkbook.SaveAs(Puno ime, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013 //Excel.Visible = 1; // ako trebate dalje raditi s knjigom
//Excel.Application.Quit() //ako samo izađemo

TabDocument.Write(FullFileName, "XLS"); Excel = CreateObject("Excel.Application"); Excel.WorkBooks.Open(FullFileName); Excel.Visible = 0; Excel.ActiveWindow.DisplayWorkbookTabs = 1; Excel.ActiveWindow.TabRatio = 0,6; Puno ime = Excel.ActiveWorkbook.Puno ime; Excel.DisplayAlerts = false; Excel.ActiveWorkbook.SaveAs(Puno ime, 18); // 18 - xls 97-2003; 51 - xlsx 2007-2013 //Excel.Visible = 1; // ako trebate dalje raditi s knjigom
//Excel.Application.Quit() //ako samo izađemo

Najbolji članci na temu