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?
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..." ???
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..." ???
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
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
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)
(Microsoft.Jet.OLEDB.4.0)
(pliki tekstowe zresztą teź, jak kto woli)
hmmm.... ciekawa koncepcja... :cry:
Moźe być w formacie xls zobacz help Accessa:
"Importowanie lub łączenie danych z arkusza kalkulacyjnego"
"Importowanie lub łączenie danych z arkusza kalkulacyjnego"
Strona 1 / 1