Jak napisać „NULL” do CSV z Excela dla pustych pól


Odpowiedzi:


5

Podczas eksportowania myślę, że może to nie być możliwe.

Możesz jednak spróbować w ten sposób przed zapisaniem lub po zapisaniu

1. Click F5
2. Click Special
3. Select Blanks
4. Click OK
5. Type NULL
6. Press CTRL + Enter

LUB

Z makro, kod VB:

Sheet1.UsedRange.SpecialCells(xlCellTypeBlanks)="NULL" 

Dodaj drugi wiersz do makra: ActiveWorkbook.SaveAs FileFormat: = xlCSV, CreateBackup: = False - Makro będzie teraz wyszukiwać i zamieniać na „NULL” i zapisywać plik, wszystko w jednym kroku.
Dave Becker,

1

Otwórz plik CSV w edytorze tekstu, takim jak Notatnik, i znajdź / zamień wszystko ,,=> ,NULL,. Nie ma go w programie Excel, ale nadal będzie działać.


Tylko ostrzeżenie: nie obsługuje cudzysłowów ani komórek na początku ani na końcu każdej linii. Również jeśli jest wiele pustych komórek obok siebie, musisz to zrobić dwa razy.
user988346

1

Wiem, że to działa w nowszym programie Excel; nie jestem pewien co do starszej wersji.

  1. Wybierz komórkę A1; następnie naciśnij klawisz Shift i kliknij najbardziej prawy dolny róg
  2. Naciśnij Ctrl+H
  3. W polu „Znajdź” pozostaw to pole puste
  4. w polu „Zamień na” wpisz NULL

Powinno to zastąpić wszystkie nici „NULL” w wybranych komórkach.


0

Krótka odpowiedź: nic nie robisz.

Nie ma różnicy między komórką Excela z pustym ciągiem lub komórką bez wartości (null) do celów eksportowania CSV. Pola w plikach CSV w rzeczywistości nie mają typów danych. W obu przypadkach otrzymasz puste pole w pliku CSV. Przykład:

wprowadź opis zdjęcia tutaj

Wygeneruje plik CSV, który zawiera:

12,,54

Nic między dwoma ogranicznikami (przecinkami) nie oznacza pustego lub pustego. Sposób postępowania z pustą wartością zależy od oprogramowania, które odczytuje plik CSV.


Moje pytanie brzmiało, czy jest sposób na napisanie słowa „NULL” dla każdego pustego pola z Excela.
user823527,

2
Przepraszam, że tego nie powiedziałeś, inaczej uzyskałbyś lepszą odpowiedź.
Dave Becker

-1

Nie znam Excela, ale ten skrypt w Pythonie to zrobi

import csv,sys
fin = open(sys.argv[1],'rb')
fout = open(sys.argv[2],'wb')
reader = csv.reader(fin, delimiter=',', quotechar='"')
writer = csv.writer(fout, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
for row in reader:
    new = []
    for s in row:
        if s=='':
            new.append('null')
        else:
            new.append(s)
    writer.writerow(new)
fin.close()
fout.close()

1
Twoje umiejętności w Pythonie są godne pochwały, ale co to ma wspólnego z zadanym pytaniem?
Dave Becker,

Rozwiązałoby to problem w inny sposób. Właśnie miałem ten skrypt dookoła i chociaż OP uznałby go za użyteczny.
Nathan

To jest pomocne, przy okazji. Nie należy go lekceważyć.
Aditya

Poza tematem ? w każdym razie wymaga instalacji Pythona w systemie Windows (nie czekoladowym )
Kiquenet
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.