Word文档中的表格,其中n列符合每页大小,并允许使用Aspose.words为.Net划分截断的列。

时间:2015-06-17 13:45:51

标签: c# .net aspose.words

我正在使用Aspose.Words(评估模式)为.Net生成一个word文档,其中我正在构建一个表格如下

   Document doc = new Document();
   DocumentBuilder builder = new DocumentBuilder(doc);
   Table table = builder.StartTable();
   for (int i = 0; i < 5; i++)
   {
       for(int j = 0; j < 20; j++)
       {
            builder.InsertCell();
            builder.Write("Column : "+ j.toString());
        }
     builder.EndRow();
   }
   builder.EndTable();
   doc.Save(ms, Aspose.Words.Saving.SaveOptions.CreateSaveOptions(SaveFormat.Doc));
   FileStream file = new FileStream(@"c:\NewDoc.doc", FileMode.Create, FileAccess.Write);
   ms.WriteTo(file);
   file.Close();
   ms.Close();

现在这段代码给出了包含不可见列的以下word文件,它应该提供20列

Table with truncated columns

有没有办法将不可见的列分解到下一页?

1 个答案:

答案 0 :(得分:0)

行可以转到下一页,而不是列,这是Microsoft Word的行为。您可以更改文档的设计和格式以使所有列可见。以下是几点建议。

  1. 缩小页边距(左右)
  2. 使单元格宽度固定。这样,如果找到更多字符,每个单元格内的文本将向下分解。
  3. 将方向更改为横向,您将拥有更宽的页面。
  4. 检查Aspose.Words documentation website上的相关文章和代码示例。

    尝试以下更新的代码示例:

    string dst = dataDir + "table.doc";
    
    Aspose.Words.Document doc = new Aspose.Words.Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    // Set margins
    doc.FirstSection.PageSetup.LeftMargin = 10;
    //doc.FirstSection.PageSetup.TopMargin = 0;
    doc.FirstSection.PageSetup.RightMargin = 10;
    //doc.FirstSection.PageSetup.BottomMargin = 0;
    
    // Set oriantation
    doc.FirstSection.PageSetup.Orientation = Aspose.Words.Orientation.Landscape;
    
    Aspose.Words.Tables.Table table = builder.StartTable();
    
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 20; j++)
        {
            builder.InsertCell();
            // Fixed width
            builder.CellFormat.Width = ConvertUtil.InchToPoint(0.5);
            builder.Write("Column : " + j);
        }
        builder.EndRow();
    }
    builder.EndTable();
    
    // Set table auto fit behavior to fixed width columns
    table.AutoFit(AutoFitBehavior.FixedColumnWidths);
    
    doc.Save(dst, Aspose.Words.Saving.SaveOptions.CreateSaveOptions(Aspose.Words.SaveFormat.Doc));
    

    我作为开发者布道者使用Aspose。