14/10/2016

Hướng dẫn sử dụng Web Automation để đọc và ghi dữ liệu xuống tập tin excel

Hôm nay mình sẽ làm một bài đơn giản giúp các bạn các đọc và ghi dữ liệu xuống tập tin excel, sau đó là phần nâng cao các bạn có thể kết hợp giữa việc trích xuất dữ liệu từ trên web sau đó ghi xuống tập tin excel và sau đó đọc dữ liệu mà bạn ghi được và sử dụng.

Đọc dữ liệu có trong tập tin excel

Các bạn lưu ý là hiện tại phần mềm chỉ có thể hỗ trợ xử lý tập tin excel có đuôi là (*.xls) không hỗ trợ định dạng (*.xlsx).

Để đọc dữ liệu có từ tập tin excel trước tiên là các bạn phải tạo tập tin excel và ghi dữ liệu vào, ví dụ như mình có tập tin Web Automation.xls lưu tại đường dẫn là D:\Web Automation.xls, và trong tập tin này mình có 2 dòng dữ liệu như trong hình bên dưới, các bạn nhớ chú ý tên sheet nha, trong hình tên sheet của mình là Sheet1 nếu bạn đặt tên khác thì lúc dùng phần mềm web automation nhớ thay đổi tham số cho đúng.


Bước tiếp theo nhớ đó tập tin đó lại nếu không lúc chương trình đọc tập tin này sẽ bị lỗi vì đã có chương trình khác đang mở nên bạn không mở được đâu.

Kế tiếp bạn hãy tải phần mềm Web Automation phiên bản 1.0.1, sau đó giản nén và mở tập tin "WebAutomation.exe" để chạy chương trình. Khi mở chương trình lên các bạn nhấn vào nút "Hiện công cụ lập trình" trên thanh công cụ sẽ được như hình bên dưới.



Nãy giờ mới là khúc dạo đầu thôi, đây mới là phần chính, tại khung công cụ lập trình bên dưới bạn hãy nhập nội dung sau:

//Read Cell in Excel file
var filePath = 'D:\\Web Automation.xls';
var sheetName = 'Sheet1';
var row = 0;
var column = 0;

var readItem = readCellExcel(filePath, sheetName, row, column);
alert(readItem);

Sau đó nhấn nút chạy để kiểm tra thử, nếu bạn làm đúng thì kết quả sẽ hiển thị message box hiện chữ "Đinh Công Thắng" như hình bên dưới:


Giải thích thêm về hàm readCellExcel, hàm này chịu trách nhiệm đọc một cell trong tập tin excel và trả về kết quả, tham số đầu tiên là đường dẫn đến tập tin excel của các bạn nên nhớ thêm dấu "\" thêm vào đường dẫn của bạn, ví dụ: D:\Excel.xls thì bạn nhập là D:\\Excel.xls, tham số thứ 2 là tên worksheet mà bạn cần đọc, trong tập tin excel của mình để mặc định là Sheet1 nên mình sẽ để tên nó là Sheet1 luôn, tham số thứ 3 là vị trí của dòng cần lấy dữ liệu bắt đầu là 0, tham số thứ 4 là vị trí cột cần lấy dữ liệu bắt đầu là 0. Ví dụ nếu mình lấy nội dung trong cột A2 trong worksheet là "Sheet1", thì mình sẽ thay đổi tham số như sau:

//Read Cell in Excel file
var filePath = 'D:\\Web Automation.xls';
var sheetName = 'Sheet1';
var row = 2;
var column = 0;

var readItem = readCellExcel(filePath, sheetName, row, column);
alert(readItem);

Sau đó nhấn vào nút chạy bạn sẽ được kết quả như hình bên dưới


Ghi dữ liệu xuống tập tin excel

Để ghi dữ liệu xuống tập tin excel, trong khung công cụ lập trình các bạn nhập nội dung sau:

//Write Cell in Excel file
var filePath = 'D:\\Web Automation.xls';
var sheetName = 'Sheet1';

writeCellExcel(filePath, sheetName, 'A3', 'Nguyễn Minh Sang');

Nhấn nút "Chạy", sau đó kiểm tra kết quả


Đối với hàm writeCellExcel, tham số đầu tiên là đường dẫn đến tập tin excel, tham số thứ 2 là tên worksheet, tham số thứ 3 là ô cần điền dữ liệu, tham số thứ 4 là nội dung cần ghi.


Mở tập tin và bạn sẽ thấy được kết quả là tại cell A3 sẽ có nội dung là "Nguyễn Minh Sang"

Hiện tại thì phiên bản 1.0.1 mới đọc và ghi tập tin excel được, phiên bản mới hơn mình đã đóng đoạn mã ghi tập tin excel rồi nên sẽ không còn hoạt động được nữa, mình sẽ cập nhật lại trong thời gian tới.

Trích xuất dữ liệu và ghi xuống tập tin excel

Chẳng hạn mình cần lấy tiêu đề trên trang tinhte.vn và sau đó ghi vào tập tin excel tại Sheet1 thì mình sẽ làm theo những bước sau:

Đầu tiên là bạn mở trang tinhte.vn, sau đó trong khung công cụ lập trình các bạn nhập nội dung sau:

var filePath = 'D:\\Web Automation.xls';
var sheetName = 'Sheet1';

for(var i = 1; i <= 10; i++){
var ele = extract("/html/body/div[2]/div[3]/div[2]/div[2]/div[4]/div/div/div/div/div/div/div/div/div["+ i +"]/div/h2/a");

var title = toObject(ele).innerText;
writeCellExcel(filePath, sheetName, 'A' + i, title);
}
alert('Xong');

Lưu ý: Hiện tại thì chương trình chỉ ghi được xuống Sheet đầu tiên thôi nên khi bạn chọn sheet khác thì nó cũng ghi có sheet đầu thôi.

Giải thích đoạn mã trên:

Mình sẽ lặp qua 10 tiêu đề trên trang tinhte.vn sau đó lấy nội dung và ghi xuống tập tin excel. Bạn để ý là trong vòng lặp for mình lặp lại 10 lần bằng cách di chuyển qua các tiêu đề trên trang tinh tế thông qua XPath, cái này các bạn có thể nhấn chuột phải lên tiêu đề chọn extract sẽ ra kết quả tương tự, từ nội dung này mình sẽ chuyển qua object javascipt rồi lấy nội dung, sau đó sẽ lưu xuống tập tin excel theo đường dẫn như trên.


Và đây là kết quả


Hy vọng là sẽ có ích cho mọi người, tuy là có hơi thiên về kỹ thuật chút nhưng mà cũng không khó lắm nhỉ :)
Chia sẻ
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Stumble Upon
  • Share to Evernote
  • Share to Blogger
  • Share to Email
  • Share to Yahoo Messenger
  • More...

0 nhận xét

 
© 2011 Phần mềm việt - Công nghệ 24h - congnghe24h - phanmemviet
Designed by BlogThietKe Cooperated with Duy Pham
Released under Creative Commons 3.0 CC BY-NC 3.0
Chính sáchĐiều khoản
Back to top