为有中文需求的客户提供多渠道中文技术支持.

Fri Apr 07, 2023 7:36 am

表格不规则,有合并单元格的情况
.net6 Spire.office 最新版本

yuan.zhang
 
Posts: 2
Joined: Fri Apr 07, 2023 7:32 am

Mon Apr 10, 2023 7:23 am

你好,

感谢你的留言。
你可以参考下面的代码将word中的table转变为PPT中的table,如果在测试你的文档时有其他问题,请提供下你的测试文档给我们进一步调查。
Code: Select all
            Document doc = new Document();
            doc.LoadFromFile(@"test.docx");
            //Get the first section
            Spire.Doc.Section se1 = doc.Sections[0];

            Double[] widths = new double[3];//列宽
            Double[] heights = new double[3];//行高
            String[,] dataStr = new String[3, 3];//单元格文本

            //Get the first table
            Table original_Table = (Table)se1.Tables[0];
            int count = original_Table.Rows.Count;
            for (int i = 0; i < count; i++)
            {
                heights[i] = original_Table.Rows[i].Height;

                int count1 = original_Table.Rows[i].Cells.Count;

                for (int j = 0; j < count1; j++)
                {
                    string text = original_Table.Rows[i].Cells[j].Paragraphs[0].Text;
                    dataStr[i, j] = text;

                    widths[j] = (Double)original_Table.Rows[i].Cells[j].Width;
                }

            }

            //Create a PPT document
            Presentation presentation = new Presentation();
            //Load the document from disk
            presentation.LoadFromFile(@"CreateTable.pptx");

            //Add new table to PPT
            ITable table = presentation.Slides[0].Shapes.AppendTable(presentation.SlideSize.Size.Width / 2 - 275, 90, widths, heights);

            //Add data to table
            for (int i = 0; i < count; i++)
            {
                int count1 = original_Table.Rows[i].Cells.Count;
                for (int j = 0; j < count1; j++)
                {
                    //Fill the table with data
                    table[j, i].TextFrame.Text = dataStr[i, j];

                }
            }
            table.MergeCells(table[1, 2], table[2, 2], false);//合并单元格

            //Save the document
            presentation.SaveToFile(@"Output.pptx", Spire.Presentation.FileFormat.Pptx2010);


Best Regards,
Herman
E-iceblue support team
User avatar

Herman.Yan
 
Posts: 115
Joined: Wed Mar 08, 2023 2:00 am

Return to 中文技术支持