x

主要章節

  1. LimeSurvey Cloud 與 LimeSurvey CE 的差異
  2. 快速入門指南 - LimeSurvey 3.0+
  3. 安裝 - LimeSurvey CE
  4. 如何設計一份好的問卷(指南)
  5. 入門指南
  6. 管理 LimeSurvey
  7. 問卷 - 簡介
  8. 問卷設定
  9. 問卷選單
  10. 問卷結構
  11. 問題簡介
  12. 題組 - 簡介
  13. 問卷管理
  14. 問卷工具列選項
  15. 多語言問卷
  16. ExpressionScript 引擎 - 快速入門指南
  17. 未分類及進階功能
  18. 常見問題
  19. 疑難排解
  20. 應變方案
  21. 授權條款
  22. 版本更改紀錄檔
  23. 外掛程式
 Actions

以定位字元分隔值(TSV)匯入/匯出問卷結構

From LimeSurvey Manual

本頁面可能為機器翻譯,可能包含錯誤。 檢視英文原文 · 改善此翻譯
This page is a translated version of the page Tab Separated Value survey structure and the translation is 100% complete.


以定位字元分隔值匯入與匯出問卷結構

此功能旨在讓您能輕鬆使用 LibreOffice、Excel 或 Google 文件等試算表軟體來撰寫及編輯問卷。完全消除了對 SGQA 代碼的依賴。

此功能支援匯入以 ASCII 或 UTF-8 編碼、副檔名為 .txt 的定位字元分隔值(TSV)檔案。


請參閱以下範例,以更了解此功能。


開始使用

最簡單的方式是取用現有問卷,並以定位字元分隔值格式匯出。請使用一般的匯出問卷按鈕,並且不要選擇 .lss 格式,而是選擇「Tab Separated Values format (*.txt)」。問卷將以正確的格式(以定位字元分隔的 Unicode 檔案)儲存為定位字元分隔值檔案,並包含所有正確的欄標題。

任何支援定位字元分隔值的試算表軟體皆可使用(例如 OpenOffice 或 LibreOffice)。LimeSurvey 會忽略試算表中的任何格式設定,但若有助於您作業,歡迎自行加入。

請注意,匯出的檔案為 UTF-8 格式,前三個(隱藏)字元為位元組順序標記(BOM)。如果您雙擊 .txt 檔案並嘗試直接以 Excel 開啟,將無法正確開啟,因為 Excel 無法辨識其為 UTF-8 格式。若要以 Excel 開啟這些檔案,請先開啟 Excel,然後選擇「檔案:開啟」,選取 .txt 檔案,並告知 Excel 該檔案使用 UTF-8 編碼。

每個群組、問題、子問題和答案都會各有一列。另外也有全域問卷變數及各語言專屬問卷變數的列。主要語言會列在最前面,接著是任何次要語言。因此,如果有多種語言,預設語言的全部內容(例如所有群組、問題、子問題和答案)會先出現,之後則是每個次要語言的翻譯副本(翻譯集的列數與順序必須完全相同)。

關係是依相鄰位置推斷的。因此,位於群組之後的問題屬於該群組;位於問題之後的子問題屬於該問題,位於問題之後的答案也屬於該問題。因此,您不需要知道任何問題的 ID(gid、qid、sqid),這些 ID 會在匯入時自動計算。事實上,此格式完全不使用 gid、qid 或 sqid(或 SGQA 代碼)。


提示

定位字元分隔值匯入/匯出的目標,是讓您能使用試算表快速設計問卷。我們預期您會經常匯入該試算表,使用「顯示問卷邏輯」功能檢查其有效性,並進行測試。每次匯入都會產生一份新問卷,因此您最終可能會有許多尚在開發中的問卷,但這沒有關係。只要養成習慣,記住哪一份是最新的,或是在匯入新問卷後刪除舊問卷即可。由於在定位字元分隔值中完全不使用 SGQA 代碼,您無需擔心 LimeSurvey 為主要問卷、群組、問題和答案鍵值指派了哪些代碼。所以,請隨意頻繁地匯入和匯出。

以下是使用此方式撰寫問卷時可以進行的一些便利操作:

  1. 多個問題使用相同的答案。只要複製「A」列,並貼在每個需要相同答案集的問題之後即可。
  2. 多個問題使用相同的子問題。只要複製「SQ」列,並貼在每個需要的問題之後即可。
  3. 「迴圈」-多次使用相同的群組。當群組調整到您想要的樣子後,依需要複製多份。使用 Excel 的篩選功能僅檢視「G」列(群組),並使用 Excel 的欄拖曳功能更新每個群組的相關性等式(例如在人口普查中,第一個相關性可能是「numPeople > 1」,下一個應為「numPeople > 2」。拖曳功能會自動更新數字)。以「Q」列篩選,並確保每個問題都有唯一值(例如,假設您將變數命名為 g1_q1、g1_q2、g1_qN,則可使用尋找/取代,將第二個群組的 g1 轉換為 g2,第三個群組轉換為 g3,依此類推)。
  4. 重新排序問題/群組。只需重新排序試算表檔案中的列即可。
  5. 測試問卷模組。對於較長的問卷,您可能想將測試拆分為多個模組。只需為每個模組建立新的試算表檔案,並刪除不需要的列。這樣可避免為了測試問卷後段內容而必須輸入大量資料。
  6. 測試必填問題。常見的抱怨並非需要將許多問題設為必填,而是測試時需要關閉必填功能。只需建立主試算表,並將必填設為最終想要的值。然後,若要測試,只需刪除「mandatory」欄並儲存試算表的測試版本。匯入該版本時,所有問題都不會是必填。完成測試後,再匯入主要副本即可。
  7. 設定預設值。您無需使用圖形介面,可直接在 default 欄中輸入任何想要的預設值。當圖形介面不允許您輸入想要的值時,這特別有幫助,例如使用運算式設定清單項目的預設值(如從問卷參與者屬性填入清單)。
  8. 翻譯。您可以建立試算表的副本,每種語言一份。包含主要語言的所有列,然後複製並貼在下方,並使用拖曳將語言欄位變更為目標語言。這些檔案可分發給您的翻譯人員,待他們完成後再整合回單一試算表檔案。
  9. 批次設定進階問題屬性。您可能希望所有等式一開始都是可見的(以便在收集資料時查看其值),但在正式上線前將它們全部隱藏。只需在試算表中篩選 class = 'Q' 且問題類型 = '*'(等式),並將這些問題的 always_hide 設為 1。同樣地,假設建立問卷後,您決定哪些問題應顯示在公開統計中。無需透過圖形介面逐一編輯每個問題,只需篩選 class = 'Q',並將所有應顯示在統計中的問題的 public_statistics 設為 1。
  10. 尋找與取代。假設您決定要變更所有問題中的某些措辭,可以使用 Excel 的尋找與取代進行變更。同樣地,假設您決定批次重新命名變數,尋找與取代也能派上用場。如果需要以正規表示式為基礎的尋找與取代,您可以選取所需的欄,複製到文字編輯器中,執行尋找與取代,再將該欄貼回試算表。
  11. 取得核准。如果您正在進行研究,可能會有機構審查委員會堅持要查看問題的文字。這可能是分享問題文字的便利方式。與客戶討論時也同樣適用。
  12. 團隊共識。如果您想讓團隊對某個問題或群組的措辭或外觀達成共識,可以快速製作原型/編輯試算表,匯入後,向團隊展示(透過問題或群組預覽)使用者將看到的確切內容。這樣一來,您可以在團隊離開會議室之前就獲得核准,而不必記錄需求、建置,然後在未來的會議中才取得核准。
  13. 從其他問卷格式升級。如果您的問卷是 XML、Word 或其他格式,您可以建立轉換流程,將其對應到此格式。雖然您也可以嘗試對應到 .lss 格式,但此格式的優點是不需要您追蹤群組、問題、子問題、答案和預設值之間的外部鍵關係。


限制

  1. 依設計,此功能僅適用於使用 qcode(而非 SGQA)命名的問卷。此功能假設變數名稱(問題識別碼)在整份問卷中是唯一的。子問題名稱可以重複,只要在特定問題的範圍內是唯一的即可。


檔案格式

一般

我們將同一組欄標題用於多種用途。前 14 欄會依實體類型(例如群組、問題、答案)而有不同用途。其餘欄則是進階問題代碼的資料庫欄位名稱,按字母順序排列。以下是各實體類型的語法

前 14 欄為:

  1. id (New in 3.14.0 )
  2. related_id (New in 3.14.0 )
  3. class
  4. type/scale
  5. name
  6. relevance
  7. text
  8. help
  9. language
  10. validation
  11. mandatory
  12. other
  13. default
  14. same_default
 Hint: id 和 related_id 欄僅用於配額,且為選用。如果您沒有配額,可以直接移除這兩欄。


問卷全域參數

surveys 資料表中的每個參數各佔一列。

  1. class => 'S'
  2. name => 資料庫欄位名稱
  3. text => 值


問卷語言專屬參數

surveys_languagesettings 資料表中,每種語言的每個欄位各佔一列。特定語言的所有項目會先收集完畢,再插入該資料表。

  1. class => 'SL'
  2. name => 資料庫欄位名稱
  3. text => 值
  4. language => 語言


群組

每個問卷語言各有一列群組(例如,如果問卷有 3 種語言,就會有 3 列群組)。

  1. id => 群組的唯一數字識別碼,從數字 1 開始,屬於目前群組的其他語言請使用相同的 ID
  2. class => 'G'
  3. name => group_name -- 群組的唯一識別碼
  4. relevance => grelevance -- 群組層級的相關性等式,不含大括號
  5. text => description -- 群組的各語言說明
  6. language => language -- 群組的語言(例如 'en')


問題

每個問卷語言各有一列問題(例如,如果問卷有 3 種語言,就會有 3 列問題)。問題會被視為屬於其前面的群組。

  1. id => 問題的唯一數字識別碼,從數字 1 開始,屬於目前問題的其他語言請使用相同的 ID
  2. class => 'Q'
  3. type/scale => type -- (通常為一個字母的)問題類型(例如 'M' 為多項選擇)
  4. name => title -- 唯一的問題名稱(qcode 命名系統的根)
  5. relevance => relevance -- 問題的相關性等式
  6. text => question -- 問題的各語言文字
  7. help => help -- 各語言的說明文字
  8. language => language -- 群組的語言(例如 'en')
  9. validation => preg -- 問題的選用正規表示式驗證條件
  10. mandatory => mandatory -- 若為必填則為 'Y'
  11. other => other -- 若應提供「其它」選項則為 'Y'(僅適用於部分問題類型)
  12. default => default -- 若已設定,此值會插入此問題的 defaultvalues 資料表
  13. same_default => same_default -- 'Y' 表示 true,此時為主要語言設定的任何 defaultvalue 會套用於其他語言


子問題

每個問卷語言對應一列子問題。子問題預設屬於其前一個問題。

  1. id => 與問題所使用的唯一數字識別碼相同。子問題應使用下一個可用的值,問題與子問題的 ID 必須不同(例如:問題使用 ID 1,屬於問題 1 的子問題使用 ID 2、3 和 4,下一個問題的 ID 則為 5,依此類推)。同一子問題的其他語言請使用相同的子問題 ID。
  2. class => 'SQ'
  3. type/scale => scale_id -- 0 或 1,視問題類型而定(例如:陣列文字會有兩個量表)
  4. name => title -- 子問題的「名稱」,例如用於 exclude_all_others 的名稱
  5. relevance => relevance -- (未來)用於支援子問題層級的相關性
  6. text => question -- 子問題的語言專屬文字
  7. help => help -- (未來)用於支援子問題層級的說明
  8. language => language -- 子問題的語言
  9. validation => preg -- (未來)用於支援子問題層級的正規表示式驗證(例如:地址的各個部分)
  10. mandatory => mandatory -- (未來)用於支援子問題層級的必填設定(例如:僅將少數子問題設為必填)
  11. default => default -- 若已設定,則為該子問題的預設值(會插入 defaultvalues 資料表)
  12. same_default => same_default -- 若已設定,則主要語言的預設值會套用於所有其他語言


答案

每個問卷語言對應一列答案(例如:若問卷有 3 種語言,則會有 3 列答案)。答案預設屬於其前一個問題,並依所需的排序排列。

  1. id => 使用與其所屬問題相同的 ID
  2. class => 'A'
  3. type/scale => scale_id -- 0 或 1(例如:用於雙量表)
  4. name => code -- 唯一的答案識別碼
  5. relevance => assessment_value -- 若使用評估選項,則為該答案的評估值
  6. text => answer -- 答案的語言專屬文字
  7. language => language -- 此答案的語言(例如:'en')


評估

每個問卷語言對應一列評估(例如:若問卷有 3 種語言,則會有 3 列評估)。評估會寫在檔案的結尾。

  1. id => 評估的唯一數字識別碼,從數字 1 開始,同一評估的其他語言請使用相同的 ID
  2. related_id => 此評估所屬群組的 id
  3. class => 'AS'
  4. type/scale => 評估範圍:T-總計,G-群組
  5. name => name
  6. text => message
  7. min_num_value => 最小值
  8. max_num_value => 最大值
  9. language => language -- 此答案的語言(例如:'en')


配額

每個配額對應一列。配額會寫在檔案的結尾。

  1. id => 配額的唯一數字識別碼,從數字 1 開始
  2. class => 'QTA'
  3. name => 配額名稱
  4. mandatory => limit
  5. other => 配額管理
  6. default => 啟用的
  7. same_default => 自動載入 URL


配額語言設定

每個問卷語言對應一列配額。配額語言設定預設屬於其前一個配額。

  1. id => 配額語言設定的唯一數字識別碼,從數字 1 開始。不同問卷語言的每一列應使用不同的 ID
  2. related_id => 此設定所屬配額的配額 id
  3. class => 'QTALS'
  4. relevance => message
  5. text => URL
  6. help => URL 說明
  7. language => language -- 此配額的語言(例如:'en')


配額成員

每個配額成員對應一列,與語言無關。配額成員列應緊接在其相關問題之後。配額成員預設屬於其前一個問題。

  1. id => 配額成員的唯一數字識別碼,從數字 1 開始
  2. related_id => 此成員所屬配額的配額 id
  3. class => 'QTAM'
  4. name => 答案代碼


條件

每個條件對應一列,與語言無關。條件列應緊接在其相關問題之後。條件預設屬於其前一個問題。

  1. id => 條件的唯一數字識別碼,從數字 1 開始。
  2. related_id => 相關問題的問題 id(如適用)
  3. class => 'C'
  4. type/scale => 情境
  5. name => 答案欄位名稱
  6. relevance => 比較運算子
  7. text => 預期答案