【问题标题】:Mail merge Aspose Word Leding Zero(Lost Zero - Datatable ColumnDatatype = string) C#邮件合并 Aspose Word Leding Zero(Lost Zero - Datatable ColumnDatatype = string) C#
【发布时间】:2014-10-13 02:43:18
【问题描述】:

我使用 Aspose Word - Mail Merge 填充数据到 Word 模板文件,使用 ADO.NET 连接数据库 SQL Server 并填充到 Datatable,我检查了我的所有数据表列数据类型字符串,我在数据库中的表具有 nvarchar 列类型,但是邮件合并字段输出在第一个字符处丢失零:

在数据库中:

MyTable
(
Order int  
Value nvarchar(200)
)

顺序 = 1,值 = "0123456789" 在数据表结果中:

Order string, Value string

顺序 = 1,值 = "0123456789"

但邮件合并输出值:

Order = 1, Value = "123456789"

【问题讨论】:

    标签: c# datatable ado.net aspose.words


    【解决方案1】:

    您使用的是哪个版本的 Aspose.Words?

    我尝试了以下代码 sn-p,它在 Word 文档中显示了前导零。

    string connectionString = @"Server=PC\SQLEXPRESS;Database=AsposeTest;User ID=a;Password=a";
    SqlConnection conn = new SqlConnection(connectionString);
    conn.Open();
    string sql = "SELECT * FROM MyTable";
    SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
    DataSet ds = new DataSet();
    adapter.Fill(ds, "MyTable");
    
    // Load Word document
    Aspose.Words.Document doc = new Aspose.Words.Document(dataDir + "Orders_Template.docx");
    doc.MailMerge.ExecuteWithRegions(ds);
    doc.Save(dataDir + "Orders.docx");
    Process.Start(dataDir + "Orders.docx");
    conn.Close();
    

    这是桌子设计。

    我在其中放了两条记录,字符串列中的前导零。

    模板很简单,如下所示。

    输出包括所有行,前导零。

    【讨论】:

    • 嗨 Saqib,我使用 aspose v.7,我使用 dataview - mytable 只有一行,大约 20 列,当我获取数据表时,我需要的所有列仍然前导零,我将此数据表转换为 dataview DataView orderDetailsView = new DataView(dtHoSoQuaMang); doc.MailMerge.Execute(orderDetailsView);,但是当输出邮件合并时,某些列丢失零我需要前导零
    • 请尝试最新版本。如果最新版本出现前导零,则 v 7 可能存在问题,该问题已在较新版本中修复。我将 DataTable 转换为 DataView,没有出现前导零。使用 Aspose.Words v 14.6。
    猜你喜欢
    • 2021-08-24
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    相关资源
    最近更新 更多