1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo nghiên cứu 1 hệ thống chấm điểm tự động môn tin học văn phòng

43 606 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 1,36 MB

Nội dung

Lý do chọn đề tài: Các chương trình chấm điểm tự động từ lâu đã là một trong những đề tài nghiên cứu vô cùng hấp dẫn, có nhiều ứng dụng thực tiễn.. Ví dụ như: Chương trình chấm điểm trắ

Trang 1

LỜI CẢM ƠN

Chúng em xin gửi lời cảm ơn tới ThS Nguyễn Thị Hương Lan và thầy Trịnh Bá Quý – những thầy cô đã tận tình hướng dẫn, giúp đỡ chúng em thực hiện đề tài này trong suốt hơn 6 tháng qua

Mặc dù đã rất cố gắng nghiên cứu và hoàn thiện, song đề tài vẫn còn nhiều thiết sót, nhóm thành viên thực hiện đề tài rất mong được nhận được những ý kiến của các thầy cô để đề tài được hoàn thiện hơn nữa và được ứng dụng thực tê như mong mỏi

Chúng em xin chân thành cảm ơn !

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Giáo viên hướng dẫn

Trang 3

MỤC LỤC

PHẦN MỞ ĐẦU 4

I Lý do chọn đề tài: 4

II Mục đích chọn đề tài: 4

III Nhiệm vụ nghiên cứu: 5

IV Phương pháp nghiên cứu: 5

V Bố cục bài báo cáo 5

NỘI DUNG CHÍNH 6

I Tổng quan hệ thống 6

1 Mô tả hệ thống 6

II XML – DOM/SAX - Phương pháp trích rút các thông tin từ văn bản dựa vào phân tích file XML của văn bản 8

1 Cơ bản về XML 8

2 DOM và SAX 11

3 Phương pháp trích rút các thông tin từ văn bản dựa vào phân tích file XML của văn bản 12

4 Ứng dụng xây dựng hàm chấm điểm cho Table 15

III Ứng dụng AIP : VSTO 17

IV Xây dựng phương thức chấm điểm 31

1 Mô hình tổng thể của quá trình chấm điểm 31

2 Mô tả chi tiết quá trình chấm điểm tại máy chủ 31

V Ứng dụng mạng Socket 33

1 Giới thiệu chung 33

2 Mô hình client/server 33

3 Giới thiệu về NameSpace System.Net và 34

VI Giới thiệu giao diện chương trình 38

1 Form Thầy giáo: 38

2 Form : Cán bộ chuyên môn 40

3 Giao diện máy chủ: 41

4 Giao diện máy khách 42

TÀI LIỆU THAM KHẢO 43

Trang 4

PHẦN MỞ ĐẦU

I Lý do chọn đề tài:

Các chương trình chấm điểm tự động từ lâu đã là một trong những đề tài nghiên cứu

vô cùng hấp dẫn, có nhiều ứng dụng thực tiễn Ví dụ như: Chương trình chấm điểm trắc nghiệm, trang web luyện thi Olimpic, phần mềm chấm điểm lập trình… Phần mềm chấm điểm tự động môn tin văn phòng ra đời là một trong những ứng dụng thực tiễn mà nhóm hi vọng, nếu thành công nó sẽ đóng góp 1 phần không nhỏ trong hỗ sợ việc giảng dạy, ôn luyện cũng như áp dụng cho các trường THPT, trung tâm dạy nghề, các trường đại học cao đẳng có giảng dạy môn Tin học văn phòn, đồng thời hỗ trợ đắc lực trong các kì sát hạch chứng chỉ Tin học A, B trong toàn quốc

Hiện tại trên thế giới, có 1 phần mềm mà MS cung cấp để cấp chứng chỉ thi MOS, cho phép người dùng thực hiện các thao tác và chấm điểm các thao tác trên bộ office ( bao gồm Word , Excel…) tuy nhiên khảo sát việc thiết lập đề thi cũng như cách thực chấm điểm 1 đề thi tin văn phòng ở Việt Nam, nhóm đã quyết định xây dựng 1 phần mềm chấm điểm riêng, với mục tiêu: hiệu quả, mềm dẻo và phù hợp Ở một số các trường Đại học như kinh tế quốc dân, hay bách khoa mà nhóm tìm hiểu, đã có những nhóm sinh viên nghiên cứu về đề tài này, tuy nhiên tới giờ vẫn chưa có 1 chương trình thực

sự ứng dụng hiệu quả

Được sự giúp đỡ của cô giáo : Nguyễn Thị Hương Lan và thầy Trịnh Bá Quý, suốt hơn

6 tháng qua, nhóm đã cố gắng xây dựng 1 hệ thống chấm điểm, mặc dù vẫn còn rất nhiều những cái cần bổ sung, tuy nhiên nhóm đã, đang và sẽ cố gắng đầu tư và hoàn thiện để có 1 chương trình thực sự hiệu quả và hữu ích

II Mục đích chọn đề tài:

Mục đích của đề tài là xây dựng thành công 1 hệ thống chấm điểm tự động môn tin học văn phòng để có thể áp dụng thực tiễn trên các phòng máy của khoa CNTT, đồng thời từ đó phát triển 1 trang web hỗ trợ luyện thi và thi môn Tin Học Văn Phòng thực

sự hiệu quả

Trang 5

III Nhiệm vụ nghiên cứu:

 Nghiên cứu những khái niệm, những vấn đề gặp phải và đưa ra giải pháp của quá trình khai khác, chọn lựa các thuộc tính chấm điểm trong word và trong excel

 Nghiên cứu những vấn đề xoay quanh một phương thức chấm điểm và xây dựng mạng socket tương tác

 Thực hiện cài đặt chương trình và kiểm thử

IV Phương pháp nghiên cứu:

 Phương pháp nghiên cứu chủ yếu là tham khảo tài liệu, bài viết liên quan tới nhận dạng ký tự quang học

 Tìm nguồn tài liệu trên Internet, sách báo liên quan

 Nghiên cứu ngôn ngữ Office Open XML, AIP : VSTO, C#, Socket để tiến hành cài đặt chương trình

V Bố cục bài báo cáo

Báo cáo được chia thành 6 chương:

Chương 1: Tổng quan hệ thống

Chương 2: XML – DOM/SAX - Phương pháp trích rút các thông tin từ văn

bản dựa vào phân tích file XML của văn bản

Chương 3: Ứng dụng AIP : VSTO

Chương 4: Xây dựng phương thức chấm điểm

Chương 5 : Ứng dụng mạng Socket

Chương 6: Giới thiệu giao diện chương trình

Trang 6

Hệ thống được xây dựng để phục vụ cho đối tượng Giáo viên, người cán bộ chuyên môn, giám thị và sinh viên

Trước tiên giáo viên import đề của mình sau khi đã đươc duyệt lên hệ thống, bao gồm 1 file đề và file ảnh đề Sau đó lại thiết lập đề trên hệ thống thông qua bộ lọc được xây dựng trong giao diện dành cho giáo viên

Sau khi giáo viên import đề, ta có 1 thư viện đề thi Người cán hộ chuyên môn sẽ xếp lịch thi theo lớp và môn thi của họ, đồng thời chọn tập hợp các đề trong thư viên

đề cho buổi thi hôm đó Người cán bộ chuyên môn còn có thể quản lí điểm thi của lớp thi thông qua lịch thi Các thông tin điểm, lớp, lịch thi sẽ được tham chiếu và tim kiếm một cách dễ dàng

Giám thị sau khi được cung cấp ID của buổi thi và pass của buổi thi đăng nhập

hệ thống và có 1 nhiệm vụ duy nhất là kích hoạt máy chủ để các máy khách có thể truy cập và gửi bài

Sinh viên được cung cấp 1 tài khoản duy nhất để đăng nhập vào hệ thống Sau khi đăng nhập sẽ có 1 hộp thông báo thông tin sinh viên tài khoản và thời gian làm bài còn lại Công việc của sinh viên là đánh mã đề của mình vào và import bài làm của mình Hệ thống cho phép sinh viên nôp bài nhiều nhất là 3 lần, Trong trường hợp sinh viên hết giờ làm bài thì hệ thống sẽ tự động lưu bài nộp của sinh viên trong lần import gần nhất Nếu sinh viên ko nộp bài hoăc đánh sai mã đề thì coi như bài thi 0 điểm

Dựa vào mô tả trên, áp dụng những kiến thức của phân tích thiết kế hướng đối

Trang 7

tượng, chúng em đã thực hiện các bước để có tạo lập 1 cơ sở dữ liệu chuẩn Sau đây, chúng em xin được tóm tắt qua chức năng của hệ thống cũng như giới thiệu sơ lước về

cơ sở dữ liệu của hệ thống:

Xác định được các ca sử dụng như sau:

 Đăng nhập hệ thống

 Quản lí lịch thi

 Quản lí điểm

 Quản lí thư viện đề

 Kích hoạt buổi thi

Quản lí đề ( Thêm, sửa, tìm kiếm và xem đề)

Quản lí lịch thi

Quản lí điểm

Kích hoạt buổi thi

Quản lí buổi thi

Trang 8

Thực hiện các bước đặc tả ca sử dụng, vẽ biểu đồ khung cảnh, ca sử dụng… Vì các

bước thực hiện phân tích hệ thống tương đối dài nên chúng em xin phép được lược

bớt không trình bày trong báo cáo.Sau đây là bảng tổng quan mô tả liên kết các

bảng dữ liệu sử dụng:

II XML – DOM/SAX - Phương pháp trích rút các thông tin từ

văn bản dựa vào phân tích file XML của văn bản

1 Cơ bản về XML

XML (viết tắt từ tiếng Anh eXtensible Markup Language, "Ngôn ngữ Đánh dấu Mở

rộng") là ngôn ngữ đánh dấu với mục đích chung do W3C đề nghị, để tạo ra các ngôn ngữ đánh dấu khác Đây là một tập con đơn giản của SGML, có khả năng mô tả nhiều loại dữ liệu khác nhau Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet Các ngôn ngữ dựa trên XML (thí dụ: RDF, RSS, MathML, XHTML, SVG, GML và cXML) được định nghĩa theo cách thông thường, cho phép các chương trình sửa đổi

Trang 9

và kiểm tra hợp lệ bằng các ngôn ngữ này mà không cần có hiểu biết trước về hình thức của chúng

XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin và áp dụng

một cấu trúc kiểu cây cho thông tin đó Tại mức căn bản, mọi thông tin đều thể hiện

dưới dạng text, chen giữa là các thẻ đánh dấu (markup) với nhiệm vụ ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự, các phần tử dùng để chứa dữ liệu, và các thuộc tính của các phần tử đó

Đơn vị cơ sở của XML là các ký tự theo định nghĩa của Universal Character Set (Bộ ký

tự toàn cầu) Các ký tự được kết hợp theo các tổ hợp chuỗi hợp lệ để tạo thành một tài liệu XML Tài liệu này gồm một hoặc nhiều thực thể, mỗi thực thể thường là một phần

nào đó của các ký tự thuộc tài liệu, được mã hóa dưới dạng một chuỗi các bit và lưu

trữ trong một tệp văn bản (text file)

Các tệp XML có thể dùng cho nhiều loại dữ liệu đa phương tiện RFC3023 định nghĩa các loại "application/xml" và "text/xml", với ý rằng dữ liệu được biểu diễn bằng XML

mà không nói gì đến ngữ nghĩa của dữ liệu

Sự phổ biến của các phần mềm soạn thảo văn bản (word processor) đã hỗ trợ việc

soạn thảo và bảo trì tài liệu XML một cách nhanh chóng Trước XML, có rất ít ngôn ngữ mô tả dữ liệu với các đặc điểm đa năng, thân thiện với giao thức Internet, dễ học

và dễ tạo Thực tế, đa số các định dạng trao đổi dữ liệu thời đó đều chuyện dụng, có tính độc quyền, và có định dạng nhị phân (chuỗi bit thay vì chuỗi ký tự) khó dùng chung giữa các ứng dụng phần mềm khác nhau hay giữa các hệ nền (platform) khác nhau Việc tạo và bảo trì trên các trình soạn thảo thông dụng lại càng khó khăn

Bằng cách cho phép các tên dữ liệu, cấu trúc thứ bậc được phép, và ý nghĩa của các phần tử và thuộc tính có tính chất mở và có thể được định nghĩa bởi một giản đồ tùy biến được, XML cung cấp một cơ sở cú pháp cho việc tạo lập các ngôn ngữ đánh dấu dựa XML theo yêu cầu Cú pháp chung của các ngôn ngữ đó là cố định — các tài liệu phải tuân theo các quy tắc chung của XML, bảo đảm rằng tất cả các phần mềm hiểu

XML ít ra cũng phải có khả năng đọc (phân tích cú pháp - parse) và hiểu bố cục tương

đối của thông tin trong các tài liệu đó Giản đồ chỉ bổ sung một tập các ràng buộc cho các quy tắc cú pháp Các giản đồ thường hạn chế tên của phần tử và thuộc tính và các cấu trúc thứ bậc được phép, ví dụ, chỉ cho phép một phần tử tên 'ngày sinh' chứa một phần tử tên 'ngày' và một phần tử có tên 'tháng', mỗi phần tử phải chứa đúng một ký

Trang 10

tự Đây là điểm khác biệt giữa XML và HTML HTML có một bộ các phần tử và thuộc tính không mềm dẻo, chỉ có một tác dụng và nói chung là không thể dùng cho mục đích khác

XML không hạn chế về việc nó được sử dụng như thế nào Mặc dù XML về cơ bản là dạng text, các phần mềm với chức năng trừu tượng hóa nó thành các định dạng khác giàu thông tin hơn đã nhanh chóng xuất hiện, quá trình trừu tượng hóa này được thực

hiện chủ yếu qua việc sử dụng các giản đồ định hướng kiểu dữ liệu (datatype-oriented schema) và khuôn mẫu lập trình hướng đối tượng (mà trong đó, mỗi tài liệu XML

được thao tác như là một đối tượng) Những phần mềm như vậy có thể coi XML như

là dạng text đã được tuần tự hóa chỉ khi nó cần truyền dữ liệu qua mạng

Ví dụ đơn giản về xml:

<! This is list of employees >

Trang 11

2 DOM và SAX

Mô hình Đối tượng Tài liệu (viết tắt là DOM) thậm chí xuất hiện trước cả XML DOM cho phép một người phát triển tham chiếu, truy lục, và thay đổi các mục trong một cấu trúc XML, và nó cũng đóng một vai trò quan trọng đối với XML DOM là một API độc lập về ngôn ngữ và nền được thiết kế để làm việc với dữ liệu XML Nó là một API dựa trên biểu đồ hình cây nạp tất cả dữ liệu vào trong bộ nhớ như một hệ đẳng cấp cha-con của các nút, nó có thể là các phần tử, văn bản, thuộc tính, hay các kiểu nút khác

DOM API cho phép một người phát triển đọc, tạo ra, và sửa dữ liệu XML Hướng dẫn này đã đưa ra các khái niệm phía sau DOM và minh họa chúng bằng các ví dụ trong

mã trình Java Những thực thi của DOM cũng được sử dụng trong C++, Perl, và các ngôn ngữ khác

Toàn bộ tài liêu xml sẽ được nạp vào cùng với cấu trúc phân cấp của nó, giống như một cây phân cấp

Hầu hết các bộ phân tích XML (XML parsers) (ví dụ: Xerces) và bộ xử lí XSL (ví dụ:

Xalan) đã được phát triển để sử dụng cấu trúc cây này Những hiện thực như vậy đòi hỏi toàn bộ nội dụng của một văn bản phải được phân tích và lưu trong bộ nhớ Vì thế, DOM được sử dụng tốt nhất trong các ứng dụng mà trong đó các thành phần của tài liệu có thể được truy xuất và thao tác một cách ngẫu nhiên Với các ứng dụng dựa trên

XML, bao gồm yêu cầu đọc/ghi có chọn lọc cho mỗi lần phân tích (one-time selective

Trang 12

read/write per parse), DOM cho thấy được sự tối ưu về mặt bộ nhớ Trong các trường

hợp đó thì giao diện lập trình ứng dụng SAX trở nên rất tiện lợi về cả mặt tốc độ và bộ nhớ

SAX là các API phân tách truy xuất tuần tự đến tài liệu XML Sax cung cấp một cơ

chế cho việc đọc dữ liệu từ một tài liệu XML Nó là một thay thế tốt và hay dùng thay

cho DOM Tên của nó là viết tắt của "Simple API for XML" (tiếng Anh, tức là "API

đơn giản cho XML")

Bộ phân tách mà hiện thực SAX (ví dụ, bộ phân tách SAX Parser) xử lí thông tin XML dưới dạng một dòng dữ liệu (single stream of data) Dòng dữ liệu này là đơn

hướng, nghĩa là dữ liệu đã đọc rồi thì không thể đọc lại ngoại trừ phân tách lại từ đầu

Hầu hết những ai sử dụng XML tin rằng kết quả của mẫu hình SAX là xử lí nhanh hơn

DOM Điều này là vì SAX stream dùng ít bộ nhớ hơn thay vì phải lưu tất cả trong bộ

nhớ như với cây DOM

Bộ phân tách SAX được hiện thực theo mô hình hướng sự kiện (event-driven) mà trong đó nhà lập trình cung cấp các phương thức callback được triệu gọi bởi bộ phân

tách như là một phần của quá trình duyệt qua tài liệu XML

3 Phương pháp trích rút các thông tin từ văn bản dựa vào phân tích file XML của văn bản

Văn bản dưới định dạng doc hoặc docx có thể dễ dàng chuyển đổi và lưu trữ dưới dạng file xml Tất cả những định dạng của văn bản về font chữ, căn lề, dãn dòng…v.v cũng như nội dung của văn bản đều có thể được thể hiện trong cấu trúc của file xml đó

Những quy định về việc định dạng và nội dung của văn bản được lưu trữ như thế nào trong file xml được quy định theo một chuẩn chung được những hãng lớn như Apple, Microsolf, Intel v.v chung tay góp sức tạo nên, và tài liệu chính thức về chuẩn chung này là ECMA-376:2011 dựa vào tài liệu này ,chúng ta có thể biết chính xác cách mà file xml biểu diễn một file văn bản ví dụ như nội dung văn bản sẽ được lưu trong cặp thẻ w:body,đoạn văn sẽ được lưu trong w:p v.v những quy định và những thẻ đánh dấu xây dựng sẵn được ECMA(European Computer Manufacturers Association) định nghĩa như một ngôn ngữ dựa trên xml , là WordprocessingML với văn bản ,

Trang 13

SpreadsheetML với bảng tính Exel và PresentationML với các file trình chiếu

Powerpoint

Minh họa một văn bản đơn giản

Một phần Trong file xml lưu trữ thông tin của file văn bản trên

Cách thức thực hiện:

Khi đã nắm được cấu trúc của file xml biểu diễn văn bản , ta có thể dễ dàng lấy được

các thông tin về nội dung cũng như định dạng của văn bản ấy thông qua các thao tác

xử lí với XML như mô hình DOM hoặc SAX

Trang 14

Sơ đồ mô tả cách tạo ra bộ chuẩn

Mỗi đối tượng cần được chấm điểm trong văn bản sẽ được tạo một lớp chứa những đặc trưng của đối tượng ấy Ví dụ như định dạng trang(PageSetup) sẽ đặc trưng bởi kiểu giấy , cỡ giấy, căn lề trái, căn lề phải v.v

Những thông tin ấy sẽ được lấy ra từ file xml trong những cặp thẻ quy định theo chuẩn

Sau đó , tập hợp các đối tượng của các lớp được tạo ra chính là sự phân tích mô tả chính xác văn bản đầu vào, tạo ra một lớp đối tượng Document đại diện cho toàn bộ văn bản

Và nhiệm vụ chỉ còn là so sánh giữa đối tượng document được tạo ra từ file của trò với đối tượng document được tạo ra từ file của thầy cung cấp, và xây dựng phương thức tính điểm hợp lí

Dựa vào những nội dung, cũng như áp dụng đầy đủ những phương pháp trên, nhóm chúng em đã tự xây dựng ra 1 bộ API: trích rút những thuộc tính cần chấm, tuy nhiên trong quá trình khai thác, nhóm nhận ra một số những cái hạn chế, cũng như thiếu sót trong AIP tự xây dựng Điều này làm cho việc chấm điểm trở nên hết cứng nhắc, khó khăn và chưa thực sự tối ưu Tình cờ trong quá trình nghiên cứu về mảng thuộc tính table, chúng ra em tìm ra 1 bộ AIP : VSTO ( Về bản chất VSTO là một Add-in của Visual Studio (VS)- hỗ trợ lập trình mạnh mẽ trên các ứng dụng của Office 2003 và 2007).Riêng bô AIP này , chúng em xin được trình cụ thế ở

Trang 15

chương 3 Tuy vậy, riêng mảng khai thác các thuộc tính về table thì sử dụng AIP này chưa thể mềm mẻo và tối ưu Vì thế, bên cạnh khai thác AIP : VSTO chúng em vẫn áp dụng và sử dụng những kiến thức của DOM/ SAX để khai thác file xml phục

vụ việc xây dựng hàm chấm điểm cho Table Sau đây chúng em xin được trình bày

cụ thể về mảng này:

4 Ứng dụng xây dựng hàm chấm điểm cho Table

4.1 Xây dựng lớp lấy các đặc trưng cần chấm của một table

a Các đặc trưng cần lấy bao gồm:

 Lấy số dòng

 Lấy số cột

 Lấy kiểu đường viền( có đường viền, ko có đường viền, single, double, )

 Lấy vị trí hòa ô dọc, vị trí hòa ô ngang

 Lấy tiêu đề của từng ô(nếu có)

b Phương pháp để lấy các đặc trưng của table

Sử dụng thuộc tính WordOpenXML của Microsoft.Office.Interop.Word.Document, thuộc tính này sẽ cho chúng ta một chuỗi XML chứa các nội dung của tài liệu trong định dạng Word Open XML

Sat đó đưa chuỗi XML vừa lấy được ở trên vào lớp XmlDocument để sử lý bằng cách sử dụng phương thức LoadXml

Các đặc trưng của Table được quy định trong tài liệu XML bằng các thẻ tương ứng,

do đó ta muốn lấy các đặc trưng đó, thì chúng ta phải lấy được các thẻ biểu diễn cho đặc trưng tương ứng Có nhiều cách để có thể lấy được các thẻ thông qua tên của nó, nhưng ở đây chúng ta sẽ sử dụng phương thức GetElementsByTagName(String) Phương thức này sẽ trả về cho chúng ta một tập hợp các thẻ có trong file XML mà tên của nó trùng với tên thẻ mà ta muốn lấy

Dưới đây là một số thẻ tương ứng với từng đặc trưng của Table:

Tên đặc trưng Tên thẻ tương ứng

Trang 16

Dòng w:tr

Cột w:tblGrid

Hòa ô ngang w:gridSpan

Đường viền w:tblBorders

c Xây dựng hàm chấm cho một Table

Ta sẽ đối chiếu các đặc trưng của Table đáp án(bản word đáp án của thầy) với các đặc trưng của Table cần chấm( bản word của trò), đặc trưng nào trùng khớp ta sẽ chấm điểm cho đặc trưng ấy, điểm của một Table là tổng điểm chấm các đặc trưng

4.2 Xây dựng hàm chấm cho các Table trong một bài word

Tư tưởng chấm : chúng ta sẽ lấy hết các đặc trưng của từng Table cho vào một danh sách(trong đó bài đáp án của thầy ta có các danh sách đặc trưng của từng table của thầy, bài của trò ta cũng làm tương tự) Duyệt từng Table trong danh sách Table của thầy ta sẽ đem so sánh độ trùng khớp của nó với các Table trong danh sách Table của trò Cái nào có độ trùng khớp lớn nhất ta chấm Table đó Ở đây độ trùng khớp được đo bởi hai thuộc tính:

 Độ trùng khớp của chuỗi tiêu đề trên mỗi ô của Table

 Số dòng Table của thầy bằng với số dòng Table của trò

 Số cột Table của thầy bằng với số cột Table của trò

Trang 17

III Ứng dụng AIP : VSTO

AIP : Visual studio tools for office (VSTO)

Về bản chất VSTO là một Add-in của Visual Studio (VS) VSTO xuất hiện từ khoảng đầu năm 2004 dựa trên VS 2003, với mục đích thay thế VBA trong Excel, Word Nhưng phải đến phiên bản VS 2008 thì VSTO mới thực sự hoàn chỉnh với sự hỗ trợ lập trình mạnh mẽ trên các ứng dụng của Office 2003 và 2007

Tổng quan về VBA và VSTO

VBA (Visual Basic for Application) từ lâu đã được biết đến như một công cụ lập trình quen thuộc và dễ dùng cho việc phát triển ứng dụng trên nền Office cũng như mở rộng tính năng cho Office (sau đây xin gọi chung là ứng dụng nền) Tuy nhiên, vì đã ra đời khá lâu (năm 1993) và ít có sự cải tiến nên hiện tại cũng bộc lộ một số hạn chế như: Không hỗ trợ font chữ Unicode

Chỉ sử dụng ngôn ngữ Visual Basic (VB)

Môi trường lập trình (IDE) và các Controls đi kèm lạc hậu so với các công cụ mới như Visual Studio (VS) 2008

Bảo vệ mã chương trình không triệt để

Chưa bắt kịp sự phát triển các tính năng của các phiên bản Office mới như Office

2007

Vì lý do trên, Microsoft đã phát triển công cụ lập trình VSTO (môi trường NET, là một phần trong bộ Visual Studio 2008) nhằm hỗ trợ tốt hơn việc lập trình trên Office (như Word, Excel, Outlook, PowerPoint )

Về bản chất VSTO là một Add-in của Visual Studio (VS) VSTO xuất hiện từ khoảng đầu năm 2004 dựa trên VS 2003, với mục đích thay thế VBA trong Excel, Word Nhưng phải đến phiên bản VS 2008 thì VSTO mới thực sự hoàn chỉnh với sự hỗ trợ lập trình mạnh mẽ trên các ứng dụng của Office 2003 và 2007

Giống VBA, VSTO cũng tác động trực tiếp với các ứng dụng nền, như vậy sẽ khá thuận lợi khi người dùng chuyển từ VBA sang VSTO

Những đặc điểm nổi bật của VSTO 3.0 (hay còn gọi là VSTO 2008):

Trang 18

Hỗ trợ các ngôn ngữ mà VS hỗ trợ: VB NET, C++, C#

Tận dụng giao diện đồ họa Windows Form của VS

Cải thiện khả năng truy cập cơ sở dữ liệu với server (SQL và ADO)

Bảo vệ mã chương trình bằng cách che dấu và ngăn cản sự thay đổi từ bên ngoài

VSTO 3.0 cho phép tạo ứng dụng ở dạng nhúng hoặc độc lập

Dạng nhúng: các ứng dụng được lưu theo các file dữ liệu của office như docx, xlsx

và chỉ sử dụng được cho file đó

Dạng độc lập: mã chương trình được xuất thành dạng file *.dll, từ đó tham chiếu vào các ứng dụng tương ứng Việc cài đặt các ứng dụng VSTO 3.0 rất đơn giản nhờ công nghệ ClickOnce

Một số ứng dụng của VSTO:

Tùy biến giao diện Ribbon

Thay thế VBA dạng add-ins

Tạo TaskPane cho ứng dụng Office

Cá nhân hóa Outlook

Về cơ bản, giống như VBA, VSTO được xây dựng dựa trên kiến trúc COM, cho nên người dùng có thể sử dụng các thành phần sẵn có của ứng dụng nền trong việc xây dựng chương trình của mình, giúp thời gian phát triển được rút ngắn

Một dự án được xây dựng bằng VSTO dựa trên ứng dụng nền nào thì nó phụ thuộc chặt chẽ vào ứng dụng nền đó, bởi theo mặc định, dự án VSTO sẽ hoạt động và sử dụng các thành phần trong chính ứng dụng nền đó

Sự khác biệt cơ bản nhất của VSTO trong các ứng dụng nền (ví dụ giữa Word và Excel) là cách thức sử dụng các thành phần (đối tượng) của ứng dụng nền Cho nên khi xây dựng ứng dụng bằng VSTO, cũng như VBA, thì việc hiểu rõ mô hình đối tượng của ứng dụng nền là yêu cầu bắt buộc

Nói tóm lại, để lập trình với VSTO, cách tốt nhất là làm chủ từng phần Đầu tiên cần nắm vững một ngôn ngữ lập trình mà Visual Studio hỗ trợ (VB, C# hoặc C++) và cách

sử dụng VSIDE để viết mã lệnh cũng như thiết kế giao diện Sau đó nghiên cứu mô

Trang 19

hình đối tượng của các ứng dụng nền (là những thành phần của ứng dụng mà người dùng có thể sử dụng) cũng như cách sử dụng chúng

Mô hình đối tượng của một bản tài liệu

Ứng dụng của VSTO trong đề tài :

Dựa vào VSTO ta có thể thực hiện lọc ra các thuộc tính cần thiết của một tài liệu dạng doc hoặc docx Dưới đây là bảng các đối tượng và thuộc tính của bản doc và docx:

Trang 20

PageSetup.TopMargin PageSetup.LeftMargin PageSetup.RightMargin PageSetup.BottomMargin PageSetup.Gutter PageSetup.GutterPos PageSetup.Orientation PageSetup.PaperSize

PageSetup.PageWidth PageSetup.PageHeight

Trang 21

2 TableOfC

ontent showPageN

umber rightPageNumberAlign useHyperLinks

tabLeader;

startLevel endLevel

TableOfContent.IncludePageNumb ers;

TableOfContent.RightAlignPageN umbers;

TableOfContent.UseHyperlinks; TableOfContentTabLeader; TableOfContent.UpperHeadingLev el;

TableOfContent.LowerHeadingLev el;

3 Footnote

Endnote

viTri numbering numberStyle startNumber text

paraGraph

Header.Range.Shapes Header.Range.Paragraph

Ngày đăng: 25/01/2016, 11:21

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w