Răsfoiți Sursa

экспорт в ворд

Danila Alekseev 1 an în urmă
părinte
comite
c5a63d184f
4 a modificat fișierele cu 77 adăugiri și 0 ștergeri
  1. 10 0
      ROGOZ/Pages/Diagram.xaml
  2. 57 0
      ROGOZ/Pages/Diagram.xaml.cs
  3. 10 0
      ROGOZ/ROGOZ.csproj
  4. BIN
      ROGOZ/Resources/word.png

+ 10 - 0
ROGOZ/Pages/Diagram.xaml

@@ -67,5 +67,15 @@
                 <Image Source="/Resources/Excel.png" Style="{StaticResource ImageStyle}"/>
             </Grid>
         </Button>
+
+        <Button Style="{StaticResource AuthoButtons}" Grid.Row="3"
+                Height="60" Width="280" FontSize="25" HorizontalAlignment="Right" 
+                Margin="0 0 45 10" Name="btnWord"
+                Click="btnWord_Click">
+            <Grid Width="280">
+                <TextBlock Text="Экспорт в Word" FontSize="25" Style="{StaticResource Text_Style}"/>
+                <Image Source="/Resources/word.png" Style="{StaticResource ImageStyle}"/>
+            </Grid>
+        </Button>
     </Grid>
 </Window>

+ 57 - 0
ROGOZ/Pages/Diagram.xaml.cs

@@ -13,6 +13,7 @@ using System.Windows.Media;
 using System.Windows.Media.Imaging;
 using System.Windows.Shapes;
 using Excel = Microsoft.Office.Interop.Excel;
+using Word = Microsoft.Office.Interop.Word;
 
 namespace ROGOZ.Pages
 {
@@ -155,5 +156,61 @@ namespace ROGOZ.Pages
             }
             application.Visible = true;
         }
+
+        private void btnWord_Click(object sender, RoutedEventArgs e)
+        {
+            var allTask = _context.Task.ToList();
+            var allExecuters = _context.Executor.ToList();
+
+            var application = new Word.Application();
+
+            Word.Document document = application.Documents.Add();
+
+            foreach (var ex in allExecuters)
+            {
+                Word.Paragraph executerParagraph = document.Paragraphs.Add();
+                Word.Range executerRange = executerParagraph.Range;
+                executerRange.Text = ex.User.MiddleName;
+                executerParagraph.set_Style("Заголовок");
+                executerRange.InsertParagraphAfter();
+
+
+                Word.Paragraph tableParagraph = document.Paragraphs.Add();
+                Word.Range tableRange = tableParagraph.Range;
+                Word.Table tasksTable = document.Tables.Add(tableRange,
+                    allExecuters.Count(), 3);
+                tasksTable.Borders.InsideLineStyle = tasksTable.Borders.OutsideLineStyle
+                    = Word.WdLineStyle.wdLineStyleSingle;
+                tasksTable.Range.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
+
+                Word.Range cellRange;
+
+                cellRange = tasksTable.Cell(1, 1).Range;
+                cellRange.Text = "Название задачи";
+                cellRange = tasksTable.Cell(1, 2).Range;
+                cellRange.Text = "Крайняя дата задачи";
+                cellRange = tasksTable.Cell(1, 3).Range;
+                cellRange.Text = "Статус";
+
+                tasksTable.Rows[1].Range.Bold = 1;
+                tasksTable.Rows[1].Range.Paragraphs.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
+
+                for (int i = 1; i < allExecuters.Count(); i++)
+                {
+                    cellRange = tasksTable.Cell(i + 2, 1).Range;
+                    cellRange.Text = allTask[i].Title;
+
+                    cellRange = tasksTable.Cell(i + 2, 2).Range;
+                    cellRange.Text = allTask[i].Deadline.ToString();
+
+                    cellRange = tasksTable.Cell(i + 2, 3).Range;
+                    cellRange.Text = allTask[i].Status;
+                }
+
+                if (ex != allExecuters.LastOrDefault())
+                    document.Words.Last.InsertBreak(Word.WdBreakType.wdPageBreak);
+            }
+            application.Visible = true;
+        }
     }
 }

+ 10 - 0
ROGOZ/ROGOZ.csproj

@@ -250,6 +250,7 @@
       <DependentUpon>Model1.edmx</DependentUpon>
       <LastGenOutput>Model1.cs</LastGenOutput>
     </Content>
+    <Resource Include="Resources\word.png" />
     <Resource Include="Resources\Excel.png" />
     <Resource Include="Resources\Chart.png" />
     <Resource Include="Resources\ClearFilter.png" />
@@ -288,6 +289,15 @@
       <Isolated>False</Isolated>
       <EmbedInteropTypes>True</EmbedInteropTypes>
     </COMReference>
+    <COMReference Include="Microsoft.Office.Interop.Word">
+      <Guid>{00020905-0000-0000-C000-000000000046}</Guid>
+      <VersionMajor>8</VersionMajor>
+      <VersionMinor>7</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
     <COMReference Include="VBIDE">
       <Guid>{0002E157-0000-0000-C000-000000000046}</Guid>
       <VersionMajor>5</VersionMajor>

BIN
ROGOZ/Resources/word.png