NEWS

[C#] Hướng dẫn đọc Table trên file Microsoft Word vào Data Gridview

[C#] Hướng dẫn đọc Table trên file Microsoft Word vào Data Gridview
Đăng bởi: Thảo Meo - Lượt xem: 2490 08:20:51, 03/11/2022C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẻ hướng dẫn các bạn cách đọc Table trên Microsoft Word vào Data Gridview trên C#, Winform.

[C#] Tutorial read Table in Microsoft Office Word into Data Gridview

Dưới đây là giao diện demo ứng dụng C#:

READ_MS_WORD

Video hướng dẫn Step by Step:

Đầu tiên, các bạn cần import thư viện DocumentFormat.OpenXml từ Nuget:

PM> NuGet\Install-Package DocumentFormat.OpenXml -Version 2.18.0

Tiếp đến, các bạn tạo một button để mở hộp thoại OpenFileDialog lên để chọn file Word vào.

Trong bài viết này, mình chỉ demo với tập tin .docx nhé.

Source code C#:

using DocumentFormat.OpenXml.Office2013.Excel;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ReadWordFileToDataTable
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnBrowser_Click(object sender, EventArgs e)
        {
            using (var dlg = new OpenFileDialog())
            {
                if (dlg.ShowDialog() == DialogResult.OK) {
                    var fileName = dlg.FileName;
                    textBox1.Text = fileName;
                    DataTable data = ReadTableFromMSWord(fileName);
                    dataGridView1.DataSource = data;
                }
            }
        }

        private DataTable ReadTableFromMSWord(string fileName)
        {
            using (var doc = WordprocessingDocument.Open(fileName, false))
            {

                DataTable dt = new DataTable();
                int rowCount = 0;

                Table table = doc.MainDocumentPart.Document.Body.Elements<Table>().First();
                IEnumerable<TableRow> rows = table.Elements<TableRow>();
                foreach (TableRow row in rows)
                {
                    if (rowCount == 0)
                    {
                        foreach (TableCell cell in row.Descendants<TableCell>())
                        {
                            dt.Columns.Add(cell.InnerText);
                        }
                        rowCount += 1;
                    }
                    else
                    {
                        dt.Rows.Add();
                        int i = 0;
                        foreach (TableCell cell in row.Descendants<TableCell>())
                        {
                            dt.Rows[dt.Rows.Count - 1][i] = cell.InnerText;
                            i++;
                        }
                    }
                }

                return dt;
            }
        }
    }
}

Thanks for watching!

DOWNLOAD SOURCE

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn đọc Table trên file Microsoft Word vào Data Gridview
Đăng bởi: Thảo Meo - Lượt xem: 2490 08:20:51, 03/11/2022C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.