ورود / ثبت نام
0
0

خواندن محتوای فایل word با استفاده از ASP.Net

481 بازدید
فایل Word

فایل Word

برخی از مواقع نیاز داریم که محتوای فایل Word آپلود شده را در یک textbox نمایش دهیم، بنابراین تصمیم گرفتیم که در این مقاله نحوه خواندن فایل word را از طریق ASP.Net آموزش دهیم. پس با ما همراه باشید تا گام به گام نشان دهیم که چگونه می توان یک فایل Word را خواند و محتوای آن را در یک TextBox نمایش داد.

فایل Word

موارد موردنیاز:
موارد موردنیاز زیر ممکن است نتیجه شرایط مختلف باشند، برخی از شرایط رایج به صورت زیر می باشند:

برای آپلود یک رزومه و نمایش محتوای آن در  یک TextBox به عنوان خلاصه
ذخیره این رزومه در دیتابیس که بعدها برای CV یا پارس کردن(parsing) رزومه مفید می باشد.
در وبلاگ یا فروم ها برای آپلود مستقیم محتوای فایل در ویرایشگر که ویرایش و ذخیره محتوای فایل را سریع تر می کند.

حالا اجازه دهید با ایجاد یک Web Application ساده به صورت زیر، مراحل موردنظر را دنبال کنیم.

Start >> All Programs>> Microsoft Visual Studio 2012
File>> New WebSite>> C#>> Empty WebSite(برای جلوگیری از اضافه شدن Master Page)
نام مناسبی برای پروژه انتخاب می کنیم (“ReadWordFilesInFillTextBox”) و محل ذخیره سازی آن را مشخص می کنیم.
در Solution Explorer راست کلیک کرده و Add New Item و سپس Add Web Form را انتخاب می کنیم.
دو Button، یک Fileuploader و یک TextBox به قسمت <form> صفحه Default.aspx اضافه می کنیم.
خصوصیت TextMode مربوط به TextBox را روی multiline قرار می دهیم.
حال سورس کد صفحه Default.aspx به صورت زیر خواهد بود:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
    <title>Article by B.Bozorgmehr</title>  
</head>  
<body bgcolor="navy">  
    <form id="form2" runat="server">  
    <div style="color: White;">  
        <h4>  
            Article for MspSoft.com 
        </h4>  
        <br />  
        <table width="100%">  
            <tr>  
                <td>  
                    <asp:TextBox ID="TextBox1" TextMode="MultiLine" runat="server" Height="142px" Width="380px"></asp:TextBox><br />  
                </td>  
            </tr>  
        </table>  
        <br />  
        <table>  
            <tr>  
                <td>  
                    <asp:FileUpload ID="FileUpload1" runat="server" />  
                </td>  
                <td>  
                    <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />  
                </td>  
                <td>  
                    <asp:Button ID="Button1" runat="server" Text="Clear" OnClick="Button1_Click" />  
                </td>  
            </tr>  
        </table>  
    </div>  
    </form>  
</body>  
</html>

حالا برای مدیریت فرایند مربوط به فایل های Word گفته شده با راست کلیک کردن در Solution Explorer ، رفرنس Microsoft.Office.Interop را اضافه می کنیم. فضای نام های زیر برای کار با فایل های Word مورد نیاز می باشد:

 using System.IO;  
    using Microsoft.Office.Interop.Word;  
    using System.Text; 

حالا روی دکمه upload دابل کلیک کرده و کد زیر را می نویسیم:

protected void btnUpload_Click(object sender, EventArgs e)  
       {  
           //createting the object of application class  
           Application Objword = new Application();  
      
           //creating the object of document class  
           Document objdoc = new Document();  
      
           //get the uploaded file full path  
           dynamic FilePath = Path.GetFullPath(FileUpload1.PostedFile.FileName);  
      
           //pass the optional (missing) parameter to API  
           dynamic NA = System.Type.Missing;  
      
           //open Word file document   
    objdoc = Objword.Documents.Open  
                  (ref FilePath, ref NA, ref NA, ref NA, ref NA,  
                   ref NA, ref NA, ref NA, ref NA,  
                   ref NA, ref NA, ref NA, ref NA,  
                   ref NA, ref NA, ref NA  
                    
                   );  
                   
      
          //creating the object of string builder class  
           StringBuilder sb = new StringBuilder();  
      
           for (int Line = 0; Line < objdoc.Paragraphs.Count; Line++)  
           {  
               string Filedata = objdoc.Paragraphs[Line + 1].Range.Text.Trim();  
      
               if (Filedata != string.Empty)  
               {  
                   //Append word files data to stringbuilder  
                   sb.AppendLine(Filedata);  
               }  
                   
           }  
      
           //closing document object   
           ((_Document)objdoc).Close();  
      
           //Quit application object to end process  
           ((_Application)Objword).Quit();  
      
           //assign stringbuilder object to show text in textbox  
           TextBox1.Text =Convert.ToString(sb);  
       } 

روی دکمه reset دابل کلیک کرده و کد زیر را می نویسیم:

protected void Button1_Click(object sender, EventArgs e)  
       {  
           TextBox1.Text =string.Empty;  
       } 

کد مربوط به صفحه Default.aspx.cs به طور کامل به شکل زیر خواهد بود:

 using System;  
    using System.IO;  
    using Microsoft.Office.Interop.Word;  
    using System.Text;  
      
      
    public partial class _Default : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
      
        }  
        protected void btnUpload_Click(object sender, EventArgs e)  
        {  
            //createting the object of application class  
            Application Objword = new Application();  
      
            //creating the object of document class  
            Document objdoc = new Document();  
      
            //get the uploaded file full path  
            dynamic FilePath = Path.GetFullPath(FileUpload1.PostedFile.FileName);  
      
            //pass the optional (missing) parameter to API  
            dynamic NA = System.Type.Missing;  
      
            //open Word file document   
     objdoc = Objword.Documents.Open  
                   (ref FilePath, ref NA, ref NA, ref NA, ref NA,  
                    ref NA, ref NA, ref NA, ref NA,  
                    ref NA, ref NA, ref NA, ref NA,  
                    ref NA, ref NA, ref NA  
                     
                    );  
                    
      
           //creating the object of string builder class  
            StringBuilder sb = new StringBuilder();  
      
            for (int Line = 0; Line < objdoc.Paragraphs.Count; Line++)  
            {  
                string Filedata = objdoc.Paragraphs[Line + 1].Range.Text.Trim();  
      
                if (Filedata != string.Empty)  
                {  
                    //Append word files data to stringbuilder  
                    sb.AppendLine(Filedata);  
                }  
                    
            }  
      
            //closing document object   
            ((_Document)objdoc).Close();  
      
            //Quit application object to end process  
            ((_Application)Objword).Quit();  
      
            //assign stringbuilder object to show text in textbox  
            TextBox1.Text =Convert.ToString(sb);  
        }  
      
        protected void Button1_Click(object sender, EventArgs e)  
        {  
            TextBox1.Text =string.Empty;  
        }  
    } 

اگر از برنامه اجرا بگیرید، خروجی آن به شکل زیر می باشد:

فایل Word

در UI بالا، کنترل Browse برای انتخاب فایل ها از مکان فیزیکی آن ها استفاده می شود. در رویداد کلیک دکمه upload فایل Word آپلود شده خوانده و در TextBox  نمایش داده می شود. دکمه Clear محتوای TextBox را خالی می کند.
حالا فایل word را انتخاب کرده و روی دکمه upload کلیک می کنیم و محتوای آن به صورت زیر نمایش داده می شود:

فایل Word

به این ترتیب مشاهده نمودید که چگونه می توان محتوای یک فایل Word را خوانده و در TextBox قرار داد.
نکته:
اعتبارسنجی مناسب برای کنترل File Upload را در زمان پیاده سازی فراهم نمایید که بررسی کند آیا فایل وجود دارد یا خیر!

موفق باشید !

  • پسورد: www.mspsoft.com
آیا این مطلب را می پسندید؟
https://www.mspsoft.com/?p=18435
اشتراک گذاری:
واتساپتوییترفیسبوکپینترستلینکدین
داریوش فرخی
داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .
مطالب بیشتر
برچسب ها:

نظرات

3 نظر در مورد خواندن محتوای فایل word با استفاده از ASP.Net

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *