
我想將一些資料從 csv/文字檔案匯入到 Calc。
在第一列中,我希望有 '虛擬文字 # i',第二列是數值。
在文本文件中,'虛擬文字 # i' 和數值之間用幾個空格分隔。因此,我可能會透過使用“”(兩個空格)作為分隔符,然後勾選“合併分隔符”選項來實現此目的。
但是,我現在不知道該怎麼做。我嘗試使用“其他”作為自定義分隔器但它似乎將任意數量的空格解釋為一個。
這是我複製並貼上到電子表格中的初始資料。
這就是我能得到的。請注意,取消標記「空格」選項只會完成右尾空格的計算。
如您所見,以下內容均無效。這 '虛擬文字 # i' 分佈在各個欄位中,因為 Libreoffice 似乎使用一個空格作為分隔符號。
第二個 (合併分隔符)接近了,但仍然沒有得到'虛擬文字 # i' 在第一列。
當@Zina 在另一個版本中測試它時,我檢查了我的 Libreoffice 版本(4.3.3.2),但我對它是否是根本原因持懷疑態度,因為它似乎是一個相當明顯的缺陷。
我究竟做錯了什麼?可能是版本缺陷?提前致謝。
答案1
我剛剛在 CentOS 7 上嘗試了 LibreCalc 4.3.7.2,它可以工作。您只需選擇“空格”和“合併分隔符號”。我創建了一個包含隨機資料的文字檔案(行甚至沒有相同數量的列),有些資料用 1 個空格劃分,有些資料用 2 個甚至更多空格劃分。我能夠在預覽窗格中看到啟用/停用“合併分隔符號”時資料如何變化。你確定有空格嗎?是不是有些特殊字元沒有顯示?
好的。現在我明白了你的解釋。我認為只有當您輸入“虛擬文字#??”時,您才能獲得想要的行為在引號下,取消選擇「其他」以外的所有內容,您必須在其中輸入雙空格並將文字分隔符號設定為使用的引號。或者,您必須將所有雙空格替換為分號,正如其他人已經建議的那樣。
答案2
在(可編寫腳本的)兩步驟過程中,您可以使用 sed 將一些空格轉換為製表符,然後匯入。範例腳本:
#!/bin/bash
tmpcsv=$(mktemp)
inputcsv=$1
mv $inputcsv $tmpcsv
sed 's/ /\t/g' $tmpcsv > $inputcsv
scalc $inputcsv