首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C# 將 Word 文檔導入資料庫並完整保留格式的實作方案

     編輯:程式設計疑難解答

問題背景

在 C# 開發中,常遇到需將 Word 文檔(特別是包含巢狀表格、複雜排版的文檔)匯入資料庫並保留原始格式的需求。使用 Microsoft.Office.Interop.Word 直接讀取儲存格文字(Range.Text)會導致格式資訊遺失,如下程式碼所示:

for (int rowPos = 1; rowPos <= nowTable.Rows.Count; rowPos++) {
    Word.Row rows = nowTable.Rows[rowPos];
    if (rows != null) {
        nm.CONTENT = nowTable.Cell(rowPos, 2).Range.Text;
    }
}

此方式僅能取得純文字,無法保留表格結構、字型、顏色、巢狀表格等格式資訊。

解決方案:轉換為 HTML 後存儲

最佳實踐是將 Word 文檔轉換為 HTML 格式,再將 HTML 完整存入資料庫欄位。具體步驟如下:

  1. 使用 Interop 或第三方庫(如 Aspose.Words、NPOI)將 Word 文檔另存為 HTML 檔案。
  2. 透過 File.ReadAllText 或 Stream 讀取 HTML 內容。
  3. 將 HTML 字串直接寫入資料庫的大文字段(如 NVARCHAR(MAX) 或 TEXT)。

進階需求:固定欄位對應入庫

若需將文檔中特定結構化內容(如表格特定儲存格)對應到資料庫的不同欄位,可在轉 HTML 後,使用正則表達式或 HTML 解析器(如 HtmlAgilityPack)提取目標片段,再分別存入對應欄位。

優勢總結

  • 完整保留原始排版、巢狀表格、樣式等複雜格式。
  • 前端直接渲染 HTML 即可還原文檔外觀,無需額外解析。
  • 支援全文檢索、版本比對等進階功能。

Word 文檔格式示例

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved