Jak wkleić te dane?

Użytkowanie arkusza kalkulacyjnego
KontoLibreOffice
Posty: 92
Rejestracja: wt paź 04, 2022 5:48 pm

Jak wkleić te dane?

Post autor: KontoLibreOffice »

Patrz załączniki.
Załączniki
tabela.png
tabela.png (76.45 KiB) Przejrzano 400 razy
tabela.txt
(778 Bajtów) Pobrany 62 razy
7.5.6.2 (X86_64)
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Jak wkleić te dane?

Post autor: Jermor »

Najprostsza odpowiedź, to zaznaczyć w jednym dokumencie i wkleić w drugim. Tobie jednak jak sądzę chodzi o to, aby otrzymać tabelę taką, jaką pokazałeś na ilustracji.
Tego na podstawie twoich danych nie da się zrobić. Plik tekstowy z tego rodzaju danymi powinien zawierać wiersze utworzone wg tego samego schematu. Tego nie można powiedzieć o załączonym pliku. Wiersz (chodzi o numer ten podany w przykładowej tabeli) 7, 9 i 10 są utworzone całkowicie odmiennie od pozostałych. Nie dość, że kolejność informacji jest inna, to jeszcze niektóre z nich zajmują kolejne wiersze, a nawet dodatkowe puste wiersze.
Aby myśleć o wykonaniu konwersji na tabelę, należałoby najpierw uporządkować zapisy w pliku tekstowym.
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Jak wkleić te dane?

Post autor: Jan_J »

Przy imporcie z pliku .csv albo .tsv (czyli pliku tekstowym z danymi tabelarycznymi) dane są czytane wierszami. To znaczy że symbol końca wiersza nie może być umieszczony wewnątrz jednostki tekstowej stanowiącej zawartość rubryki.
Chyba że frazy tekstowe stanowiące całość zostaną ujęte w cudzysłowy wskazane przy imporcie jako ogranicznik tekstu. Same Entery w tekście pewnie i tak nie są one koniecznością — zapewne pochodzą z mało starannego opracowania pewnego dokumentu — i warto by te dodatkowe Entery po prostu zastąpić spacjami.

Także spacje w Twoim przykładzie pełnią dwojaką funkcję: albo oddzielają wpis od wpisu w sąsiadujących rubrykach, albo słowo od słowa w jednym wpisie.

Przy eksporcie danych (bo przecież one skądś pochodzą) warto wymusić, by
(1) wpisy do osobnych rubryk były oddzielane symbolem nie występującym w samej treści danych. Dobry jest symbol tabulacji.
(2) wartości tekstowe były ujęte w organiczniki tekstu; do tego dobrze się nadaje cudzysłów. Niestety, w tym przypadku cudzysłów będący fragmentem tekstu musi zyskać postać ""

Jest jeszcze trzeci problem: w Twoim przykładzie .txt zaburzona jest kolejność wpisów: klucze towarów raz występują przed opisem, a raz po. Przypuszczam, że jest to efekt kopiuj/wklej z tabelki Worda albo z pdf-a zawierającej wielowierszowe rubryki. W pliku .txt na to już nie ma rady; trzeba by je fizycznie pozamieniać (przed importem albo po imporcie).

W tym przypadku tego konkretnego dokumentu być może wklejenie ze schowka prosto do Calca jako tekst sformatowany jest najprostszym rozwiązaniem. O ile masz dostępny oryginał, a nie sam wyeksportowany .txt.

Załączam Twój txt/csv tak, jak mógłby wyglądać przygotowany do importu.
Załączniki
tabela_zmieniona.txt
(783 Bajtów) Pobrany 58 razy
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Jak wkleić te dane?

Post autor: Jermor »

Uzupełniająco do wpisu @Jan_J. Jeśli tych danych masz bardzo dużo, 100, 500... To kłopotliwym będzie ręczne oznaczanie cudzysłowem tych fragmentów, które są nazwą towaru.
Co trzeba zrobić?
  1. Zmienić symbol cali. Cudzysłów, najczęściej do tego stosowany nie jest właściwym symbolem, no ale jest pod ręką na klawiaturze. Właściwym symbolem jest Double Prime o kodzie U+2033. Cudzysłów można zamienić na cokolwiek, co potem ponownie można zamienić na ten nieszczęsny cudzysłów, np. na znak &.
  2. Doprowadzić do sytuacji, że jeden towar to jeden wiersz.
  3. Zapewnić taki sam schemat zapisu w każdym wierszu.
Jeśli to zrobisz, to we Writerze możesz na całym pliku wykonać operację "Znajdź i zamień", która wykorzystując wyrażenie regularne znajdzie to co jest nazwą towaru i obejmie ją cudzysłowem.
W załączeniu plik (uporządkowany), do którego możesz zastosować operację zamiany. Parametry dla pola "Znajdź" i "Zamień" zapisałem pod danymi wraz z objaśnieniem.
Po wykonaniu tego możesz skopiować plik (lub wstawić do arkusza) zaznaczając, że spacja jest separatorem pól.
Załączniki
tabela.txt
(1.46 KiB) Pobrany 59 razy
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ