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

4

Jak napisać „NULL” dla pustych pól podczas eksportowania pliku CSV z Excel 2007? Czy można to zrobić?

użytkownik823527
źródło
Nic nie znaczy nic, czy zero oznacza coś innego?
soandos

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" 
Siva Charan
źródło
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ć.

Kok
źródło
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.

Joseph Wolf
źródło
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.

Dave Becker
źródło
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()
Nathan
źródło
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