Excel a baza danych

Pytanie jest dość nurtujące (mnie) :wink:

Mianowicie:
w jakim pliku naleźy zachować plik Excel'a źeby zachowaly się skoroszyty zapisane w arkuszu, a źeby baza danych wyciagnęła kazdy arkusz i wyswietlila go osobno?

Opisowo:
Mamy skoroszyt Excela XP i chcemy obejrzeć zawartość poprzez bazę danych oraz wyświetlić zawartość kaźdego arkusza osobno.

Moźe znacie odpowiedź na to pytanie lub robiliście coś podobnego?

Odpowiedzi: 5

–– baza danych––– nie jest napisane jaka aplikacja, nie jest teź napisane, źe to ma być właśnie plik tekstowy, nie wspomniałeś takźe, jakie wymagania są na ten plik ze strony aplikacji. Nie wiem teź, jaka chciałbyś mieć procedurę zachowywania.

Biorąc pod uwagę uwagi ze strony
http://support.microsoft.com/default.aspx?scid=kb;en–us;Q123183

Microsoft Excel does not have a menu command to automatically export data to a text file so that the text file is exported with both quotation marks and commas as delimiters

I jeśli, w Excelu wykorzystamy opcję "Zachowaj jako" i wybierzemy z listy plik typu CSV to przynajmniej u mnie zachowuje jako plik tekstowy ze średnikami jako separatorami, dodatkowa trudność, gdy w skoroszycie jest wiele arkuszy.

Ja mam do skoroszytu PERSONAL.XLS dodany moduł i tam 2 następujące makra (opisów nie trzeba chyba), przytoczona tu forma jest oczywiście uproszczona, ale moźna ją rozbudować. Zakładam, źe np. przykładowy "mojskoroszyt.xls" jest otwarty, jeśli nie naleźałoby o taki fragment poszerzyć te makra

Sub SaveAsText1()
Dim i As Integer
Dim strName As String
Dim strKatalogDocelowy
Dim strWorkbook As String
strWorkbook = "mojskoroszyt.xls"
strKatalogDocelowy = "D:Documents and SettingsKarolMoje dokumenty" & ""
strName = "Arkusz_tekstowy"

Dim oWorkSheet As Worksheet
With Workbooks(strWorkbook)
For Each oWorkSheet In .Worksheets
i = i + 1
strName = oWorkSheet.Name
ActiveWorkbook.SaveAs Filename:= _
strKatalogDocelowy & strName & CStr(i) & ".txt", FileFormat:= _
xlCSVWindows, CreateBackup:=True
Next
End With
End Sub

Albo

Sub SaveAsTextCSV()

Dim i As Integer
Dim strName As String
Dim strKatalogDocelowy
Dim strWorkbook As String
strWorkbook = "mojskoroszyt.xls"
strKatalogDocelowy = "D:Documents and SettingsKarolMoje dokumenty" & ""
strName = "Arkusz_CSV"

Dim oWorkSheet As Worksheet
With Workbooks(strWorkbook)
For Each oWorkSheet In .Worksheets
i = i + 1
strName = oWorkSheet.Name
ActiveWorkbook.SaveAs Filename:= _
strKatalogDocelowy & strName & CStr(i) & ".csv", FileFormat:= _
xlCSV, CreateBackup:=True
Next
End With
End Sub

Natomiast gdybyś chciał jeszcze cudzysłowy to trzeba byłoby to robić takźe w kodzie, ale o tym nie piszesz... więc nie wiem, uźywasz wyrazenia "zachować"... rozumien "zachować jako..." ???
halinavb
Dodano
17.11.2004 16:15:14
nie wiem czy mnie dobrze zrozumiałeś – chodzi mi o taką sprawę:

dostaje skoroszyty excel'a i musze je przerobić na jakiś plik textowy (najlepiej po przecinkach) zeby program z bazy danych mógł je odczytać i przetworzyć.

nie chcę przekładać tych skoroszytów przez Accessa, bo to za duźo roboty, a i moźe sie coś zwalić . :wink:
pozdrawiam :D
Kapitan Filutek
Dodano
17.11.2004 12:45:25
Zawsze teź moźna importować xls poprzez Microsoft ActiveX Data Objects (ADO), ale to chyba wiesz, w innych aplikacjach teź nie tylko w Accessie (VB,VB.net,Delphi, C++, VFP itd... czy na stronach wwww)
(Microsoft.Jet.OLEDB.4.0)
(pliki tekstowe zresztą teź, jak kto woli)
halinavb
Dodano
17.11.2004 11:10:21
hmmm.... ciekawa koncepcja... :cry:
Kapitan Filutek
Dodano
16.11.2004 23:49:33
Moźe być w formacie xls zobacz help Accessa:
"Importowanie lub łączenie danych z arkusza kalkulacyjnego"
halinavb
Dodano
16.11.2004 12:28:27
Kapitan Filutek
Dodano:
04.11.2004 23:54:18
Komentarzy:
5
Strona 1 / 1