郵件將多行合併到一個文件中

郵件將多行合併到一個文件中

我有一個 Excel 文件,每個欄位都有不同的欄位:

領域 1__ |領域 2__ |
F1 項目 1 |等F2 項目 1 |
F1 項目 2 |等F2 項目 2 | ETC

每個欄位都有不同數量的項目。

我想建立一個 Word 2010 文檔,將每個欄位中的所有項目列出到一個文檔中,而不是為每筆記錄拆分為多個文檔。所以最終的 Word 文件如下所示:

字段 1
__ F1 項目 1
__ F1 項目 2

字段 2
__ F2 項目 1
__ F2 項目 2
__ F2 項目 3

「字段 1」和「字段 2」標籤不需要郵件合併字段,但該字段下的所有項目都需要進行郵件合併才能顯示在一個文件中。這可能嗎,有什麼想法或資源可以實現這一目標嗎?

答案1

為此,我將使用 SQL Server Reporting Services 等查詢和報表工具。您可以透過 ODBC 將其連接到 Excel 文件,例如

http://weblogs.sqlteam.com/joew/archive/2008/08/22/60695.aspx

報告設計將有兩個表格 - 一個用於欄位 1,另一個用於欄位 2。

Reporting Services 在呈現到 Word 方面做得很好。版面配置可能比 Word 郵件合併複雜得多,例如多個資料區域、巢狀子報表、複雜圖表等。

您可以將 Reporting Services 作為桌面應用程式運行、將其嵌入到 Windows 或 Word 應用程式或部署到 SharePoint 網站或簡單的 Reporting Services 入口網站。

答案2

可能可以使用Word 的DATABASE 欄位來實現此目的。用於插入的對話方塊不在功能區中,因此您必須在「Word 選項」中找到它,然後將其放入 QAT 或類似位置。但它遇到一兩個問題,因此最好手動插入欄位 - 使用 ctrl-F9 插入一對特殊欄位大括號程式碼,這樣您就可以了

{  }

(您不能只在鍵盤上輸入這些大括號)。

那麼,{ } 之間的所有內容都是普通文本。假設您的 Excel 文件名稱為 c:\xl\mywb.xlsx,資料位於名為 Sheet1$ 的工作表中,並且您有 3 個字段,名稱為 Field1、Field2 和 Field3。那麼你的第一個資料庫欄位可能如下所示:

{ DATABASE  \d "C:\\xl\\mywb.xlsx" \s "SELECT cf1.[field1] FROM [Sheet1$] cf1 WHERE ((cf1.[field1] IS NOT NULL ))" \h }

請注意路徑名中的雙反斜線。輸入後,選擇該字段,按 F9 執行它,然後使用 Alt-F9 查看結果。如果它們接近您的第一專欄所需的內容,那麼這可能適合您,如果不是,那麼可能是放棄這種方法的好時機。如果報告錯誤,則可能是因為拼寫錯誤。

一旦你讓一列工作,複製/貼上資料庫欄位並更改名稱,這樣你就可以了

{ DATABASE  \d "C:\\xl\\mywb.xlsx" \s "SELECT cf1.[field1] FROM [Sheet1$] cf1 WHERE ((cf1.[field1] IS NOT NULL ))" \h }

{ DATABASE  \d "C:\\xl\\mywb.xlsx" \s "SELECT cf2.[field2] FROM [Sheet1$] cf2 WHERE ((cf2.[field2] IS NOT NULL ))" \h }

然後再選擇 F9、Alt-F9。如果一切順利,請對其餘欄位重複此操作。

一些注意事項:

WHERE ((cf2.[field2] IS NOT NULL )) 是為了處理您的列中包含不同數量​​的儲存格這一事實。但你可能需要更多一點,而這種技術將消除全部空白單元格,不僅僅是列底部的空白單元格。

\h 只是新增一個列標題。

「cf1」、「cf2」是 SQL「表別名」。您可以根據需要發明它們。它們不應該是必需的,但它們確實存在,因為沒有它們,Word 往往會有點混亂,如果您嘗試使用「資料庫字段」對話框(不會插入這些別名)插入這些字段,您可能會發現這一點。

相關內容