Mam plik XLSX, w którym są dwie różne czcionki. Jedna komórka zawiera język angielski, a druga zawiera inny język. Chciałbym zapisać ten plik XLSX jako plik CSV bez utraty czcionek. czy to możliwe?
Mam plik XLSX, w którym są dwie różne czcionki. Jedna komórka zawiera język angielski, a druga zawiera inny język. Chciałbym zapisać ten plik XLSX jako plik CSV bez utraty czcionek. czy to możliwe?
Odpowiedzi:
Wybór czcionki nie jest zapisywany podczas zapisywania jako plik CSV, tylko same dane. Jeśli chcesz zapisać go dokładnie tak, jak wygląda teraz, czcionki i wszystko, może zajść potrzeba użycia innego formatu, np. .xls
lub .xlsx
.
Niestety obsługa Excela w wielu językach przy zapisywaniu nie jest zbyt dobra. Próbowałem zapisać następujące (dwie kolumny w programie Excel)
aeou aeou
äöüß äöüß
âêôû âêôû
jako CSV i wygenerował następujące:
aeou,aeou
הצ,הצ
גךפ,גךפ
Jeśli rzeczywiście próbujesz po prostu zapisać dane zawierające wiele języków przy użyciu pliku rozdzielanego, możliwym rozwiązaniem jest zapisanie go jako „Tekst Unicode” zamiast CSV. Wygeneruje plik rozdzielany tabulatorami (zamiast przecinka), a plik będzie miał rozszerzenie .txt
(zamiast .csv
), ale może to być sposób na obejście bieżącego problemu.
Dlaczego potrzebujesz różnych czcionek dla różnych języków?
CSV oznacza wartości rozdzielone przecinkami. I to jest po prostu takie. Jest to tekst z wartościami oddzielonymi przecinkami (lub, w niektórych wersjach, średnikami lub innymi ogranicznikami). Jest to w zasadzie zwykły plik tekstowy, który można otworzyć i edytować za pomocą edytora tekstu.
Formaty tekstu sformatowanego mogą zawierać metadane, takie jak czcionka, której należy użyć. Zwykły plik tekstowy naprawdę zawiera tekst i nic więcej . Format CSV nie zapewnia żadnego miejsca, w którym mogłyby być przechowywane informacje o czcionkach.
Chociaż plik CSV nie może zawierać informacji o czcionkach, może on w zasadzie być w dowolnym kodowaniu tekstu 1 . Zasadniczo plik CSV można zapisać w kodowaniu Unicode, takim jak UTF-8 lub UTF-16. W zasadzie to zadziała. Kodowanie Unicode obejmuje wszystko, co obejmuje inne kodowanie. Jeśli jest to tekst i może być reprezentowany na komputerze, może być reprezentowany w Unicode. Twój edytor CSV zdecyduje, której czcionki użyć, i prawdopodobnie, jeśli jest przyzwoity, wybierz taką, która pasuje. Na przykład, jeśli plik zawiera znaki, których domyślna czcionka nie zawiera, automatycznie użyje innej czcionki dla tych znaków.
W praktyce będzie to prawdopodobnie działało z Libre Office lub OpenOffice, ale Microsoft Excel nie lubi plików CSV w kodowaniach innych niż Latin-1 i nie gra z nimi dobrze. To jest porażka w Microsoft Office.
Obejście 1: Użyj Libre Office lub OpenOffice.
Obejście 2: Wygeneruj Unicode rozdzielany tabulatorami 2 plik, jak zasugerował Matt Champion .
1 Cóż, każde kodowanie tekstu, które zawiera znak przecinka. ASCII zawiera przecinek, a ogromna większość innych kodowań tekstu to supersystemy ASCII, ale istnieje jedno lub dwa kodowania, które nie zawierają przecinka. Binary SignWriting jest jednym z przykładów.
2 Unicode to właściwie szeroka rodzina kodowań, a nie jedno kodowanie. To, co Microsoft nazywa „Unicode”, to w rzeczywistości UTF-16 LE, które jest jednym z kodowań Unicode.
Możesz użyć makra w tym poście http://nhatkha.blogspot.com/2016/01/cach-luu-file-excel-sang-file-csv-van.html
Makro konwertuj na czcionkę UTF8. Więc myślę, że to może rozwiązać twoją sprawę.