Làm cách nào để xuất bảng sang Excel từ một trang web [đã đóng]


97

Làm cách nào để xuất bảng sang Excel từ một trang web. Tôi muốn bản xuất chứa tất cả các định dạng và màu sắc.


9
Cách dễ nhất có lẽ là xuất một tài liệu HTML, mà Excel có thể mở.
Pekka

@Pekka Tôi đã thử điều đó, nó mất tất cả định dạng / css / kích thước cột, v.v.
code511788465541441

3
@user bạn đang khai báo kích thước cột ở đâu và như vậy? Tôi không quen lắm với việc xuất dữ liệu sang Excel nhưng bạn có thể cần phải khai báo chúng nội tuyến, tức là<td style="background-color: ...
Pekka

@user - có ít nhất hai vấn đề khác nhau ở đây: 1) định dạng dữ liệu để nó xuất hiện chính xác trong Excel và 2) xuất dữ liệu bằng Javascript để nó đặt kiểu mime chính xác, nhắc người dùng lưu tệp . Bạn đang cố gắng giải quyết cả hai vấn đề này?
nrabinowitz

10
Tại sao điều này được coi là "dựa trên ý kiến"? Đây là một câu hỏi kỹ thuật rất đơn giản.
brandizzi

Câu trả lời:


75

Xa và xa, công cụ xuất bảng sang Excel rõ ràng, dễ dàng nhất là plugin Jquery DataTables Table Tools. Bạn nhận được một lưới sắp xếp, bộ lọc, đơn đặt hàng và trang dữ liệu của mình và chỉ với một vài dòng mã bổ sung và hai tệp nhỏ đi kèm, bạn có thể xuất sang Excel, PDF, CSV, sang khay nhớ tạm và máy in.

Đây là tất cả mã bắt buộc:

  $(document).ready( function () {
    $('#example').dataTable( {
        "sDom": 'T<"clear">lfrtip',
        "oTableTools": {
            "sSwfPath": "/swf/copy_cvs_xls_pdf.swf"
        }
    } );
} );

Vì vậy, triển khai nhanh chóng, không có giới hạn trình duyệt, không yêu cầu ngôn ngữ phía máy chủ và hơn hết là rất DỄ hiểu. Đó là một kết quả đôi bên cùng có lợi và tốt cho tất cả. Tuy nhiên, một điều mà nó có giới hạn là định dạng cột nghiêm ngặt.

Nếu định dạng và màu sắc là yếu tố quyết định tuyệt đối, thì phương pháp trình duyệt chéo, đáng tin cậy 100% duy nhất mà tôi đã tìm thấy là sử dụng ngôn ngữ phía máy chủ để xử lý các tệp Excel phù hợp từ mã của bạn. Giải pháp tôi lựa chọn là PHPExcel Đây là giải pháp duy nhất mà tôi tìm thấy cho đến nay xử lý tích cực việc xuất với định dạng sang phiên bản HIỆN ĐẠI của Excel từ bất kỳ trình duyệt nào khi bạn không cung cấp gì ngoài HTML. Mặc dù vậy, hãy để tôi làm rõ, nó chắc chắn không dễ dàng như giải pháp đầu tiên và cũng hơi tốn tài nguyên. Tuy nhiên, về mặt tích cực, nó cũng có thể xuất trực tiếp sang PDF. Và, khi bạn đã cấu hình xong, nó sẽ hoạt động mọi lúc.

CẬP NHẬT - Ngày 15 tháng 9 năm 2016: TableTools đã bị ngừng cung cấp một plugin mới có tên là " nút " Các công cụ này thực hiện các chức năng tương tự như tiện ích mở rộng TableTools cũ, nhưng FAR dễ cài đặt hơn và chúng sử dụng tải xuống HTML5 cho các trình duyệt hiện đại, với khả năng dự phòng cho bản tải xuống Flash ban đầu cho các trình duyệt không hỗ trợ tiêu chuẩn HTML5. Như bạn có thể thấy từ nhiều nhận xét kể từ khi tôi đăng phản hồi này vào năm 2011, điểm yếu chính của TableTools đã được giải quyết. Tôi vẫn không thể đề xuất DataTables đủ để xử lý lượng lớn dữ liệu một cách đơn giản, cho cả nhà phát triển và người dùng.


2
DataTables hoàn toàn là Javascript. Chỉ phần tử TableTools sử dụng Flash và nó rất nhỏ. Tôi sẽ KHÔNG BAO GIỜ sẵn sàng sử dụng Flash trong bất kỳ sản phẩm nào của mình!
bpeterson76

16
Tôi hiểu, và tôi đồng ý. Nhưng vẫn - dù rất nhỏ - có một đối tượng .swf ở đó và nó không thể chạy nếu không có Flash.
magma

8
Một giải pháp tuyệt vời như vậy, nhưng thật đáng tiếc nó cần Flash.
jnthnclrk

Xin chào, bạn có thể hiển thị một ví dụ hoàn chỉnh không, tôi quá khó để làm cho nó hoạt động mà không có ví dụ!
NoobTom

1
@PramodGaikwad, không, Datatables sẽ thay thế NG-table. Chúng thực sự có cùng chức năng, nhưng Datatables hoàn thiện hơn và có nhiều, nhiều tính năng hơn. Có một spinoff của Datatables tạo riêng cho góc: l-lin.github.io/angular-datatables/#/welcome
bpeterson76

42

Cách đây khá lâu, tôi đã phát hiện ra rằng Excel sẽ mở một tệp HTML với một bảng nếu chúng tôi gửi nó với kiểu nội dung Excel. Hãy xem xét tài liệu trên:

<!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>
  <title>Java Friends</title>
</head>
<body>
  <table style="font-weight: bold">
    <tr style="background-color:red"><td>a</td><td>b</td></tr>
    <tr><td>1</td><td>2</td></tr>
  </table>    
</body>
</html>

Tôi đã chạy bookmarklet sau trên đó:

javascript:window.open('data:application/vnd.ms-excel,'+document.documentElement.innerHTML);

và trên thực tế, tôi có thể tải nó xuống dưới dạng tệp Excel. Tuy nhiên , tôi không nhận được kết quả như mong đợi - tệp được mở trong OpenOffice.org Writer. Đó là vấn đề của tôi: Tôi không có Excel trong máy này nên tôi không thể thử nó tốt hơn. Ngoài ra, thủ thuật này đã hoạt động cách đây sáu năm với các trình duyệt cũ hơn và phiên bản cũ của MS Office, vì vậy tôi thực sự không thể nói liệu nó có hoạt động ngày hôm nay hay không.

Dù sao, trong tài liệu ở trên, tôi đã thêm một nút sẽ tải xuống toàn bộ tài liệu dưới dạng tệp Excel, về lý thuyết:

<!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>
  <title>Java Friends</title>
</head>
<body>
  <table style="font-weight: bold">
    <tr style="background-color:red"><td>a</td><td>b</td></tr>
    <tr><td>1</td><td>2</td></tr>
    <tr>
      <td colspan="2">
        <button onclick="window.open('data:application/vnd.ms-excel,'+document.documentElement.innerHTML);">
            Get as Excel spreadsheet
        </button>
      </td>
    </tr>
  </table>    
</body>
</html>

Lưu nó vào một tệp và nhấp vào nút. Tôi muốn yêu để biết nếu nó làm việc hay không, vì vậy tôi hỏi bạn nhận xét ngay cả đối với nói rằng nó đã không làm việc.


11
Làm cho nó hoạt động bằng cách thêm một thay thế vào cuối: window.open ('data: application / vnd.ms-excel,' + document.getElementById ('table'). NgoàiHTML.replace (/ / g, '% 20')) ;
VSP

6
Cách thay thế (được khuyến nghị): window.open ('data: application / vnd.ms-excel,' + encodeURIComponent (document.getElementById ('table'). NgoàiHTML));
VSP

5
Hoạt động hoàn hảo trong firefox, bọc bảng của bạn trong một div và sau đó gọi id bằng document.getElementById('id').innerHTMLđể chỉ lấy bảng một cách có chọn lọc, nếu không, tất cả nội dung của bạn sẽ được xuất sang bảng tính. Không làm việc trong IE cũ tuy nhiên, chỉ mở ra một cửa sổ mới với tất cả các html trong tiêu đề
Abraham Brookes

1
Giải pháp đơn giản này hoạt động tốt. Hãy xem câu hỏi trùng lặp này để có thể đặt tên tệp và đặt tên trang tính công việc. Cùng một loại giải pháp; stackoverflow.com/questions/17126453/…
Espen Schulstad

2
Tính năng này không còn hoạt động trong Office 365 do các biện pháp bảo mật nghiêm ngặt hơn. Tệp Excel phải là tài liệu Excel ĐÚNG, nếu không sẽ xuất hiện lỗi khi mở.
Phil

12

Có thể sử dụng định dạng XML cũ của Excel 2003 (trước OpenXML) để tạo chuỗi chứa XML mong muốn của bạn, sau đó ở phía máy khách, bạn có thể sử dụng URI dữ liệu để mở tệp bằng kiểu mime XSL hoặc gửi tệp cho khách hàng bằng cách sử dụng mimetype Excel "Content-Type: application / vnd.ms-excel" từ phía máy chủ.

  1. Mở Excel và tạo một trang tính với định dạng và màu sắc mong muốn của bạn.
  2. Lưu sổ làm việc Excel dưới dạng "Bảng tính XML 2003 (* .xml)"
  3. Mở tệp kết quả trong trình soạn thảo văn bản như notepad và sao chép giá trị vào một chuỗi trong ứng dụng của bạn
  4. Giả sử bạn sử dụng phương pháp tiếp cận phía máy khách với một dữ liệu thì mã sẽ giống như sau:
    
    <script type="text/javascript">
    var worksheet_template = '<?xml version="1.0"?><ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">'+
                 '<ss:Styles><ss:Style ss:ID="1"><ss:Font ss:Bold="1"/></ss:Style></ss:Styles><ss:Worksheet ss:Name="Sheet1">'+
                 '<ss:Table>{{ROWS}}</ss:Table></ss:Worksheet></ss:Workbook>';
    var row_template = '<ss:Row ss:StyleID="1"><ss:Cell><ss:Data ss:Type="String">{{name}}</ss:Data></ss:Cell></ss:Row>';
    </script>
    
    
  5. Sau đó, bạn có thể sử dụng thay thế chuỗi để tạo tập hợp các hàng được chèn vào mẫu trang tính của mình
    
    <script type="text/javascript">
    var rows = document.getElementById("my-table").getElementsByTagName('tr'),
      row_data = '';
    for (var i = 0, length = rows.length; i < length; ++i) {
    row_data += row_template.replace('{{name}}', rows[i].getElementsByTagName('td')[0].innerHTML);
    }
    </script>
    
    
  6. Khi bạn đã thu thập được thông tin, hãy tạo chuỗi cuối cùng và mở một cửa sổ mới bằng cách sử dụng URI dữ liệu

    
    <script type="text/javascript">
    var worksheet = worksheet_template.replace('{{ROWS}}', row_data);

    window.open('data:application/vnd.ms-excel,'+worksheet); </script>

Cần lưu ý rằng các trình duyệt cũ hơn không hỗ trợ lược đồ URI dữ liệu, vì vậy bạn có thể cần tạo phía máy chủ tệp cho những trình duyệt không hỗ trợ nó.

Bạn cũng có thể cần thực hiện mã hóa base64 trên nội dung URI dữ liệu, có thể yêu cầu thư viện js , cũng như thêm chuỗi '; base64' sau loại mime trong URI dữ liệu.


Mặc dù nó tốt đẹp để sử dụng OpenXML, điều này giải pháp sẽ không làm việc trên bảng với colspans hoặc rowspans mà không cần rất nhiều công việc trên các máy phát điện javascript
Eduardo Molteni

1
Cảm ơn bạn đã dạy tôi điều gì đó hơn là bảo tôi sử dụng một plugin, được đánh giá cao. Điều đáng nói là phương pháp này vẫn hoạt động tốt cho đến ngày nay.
Benjamin Gruenbaum

Thật thú vị, đã thử cách tiếp cận này. Tôi vừa nhận được toàn bộ <? Xml version = "1.0"?> <Ss: Workbook xmlns: ss = "urn: schemas-microsoft-com: office: Spreadheet"> '+' <ss: Styles> <ss: Style ss : ID = "1"> <ss: Phông chữ ss: Bold = "1" /> </ ss: Kiểu> </ ss: Kiểu> <ss: Trang tính ss: Tên = "Trang1"> '+' <ss: Bảng> giá trị với các chuỗi của tôi được ghi vào một ô, bao gồm tất cả các hàng trong một ô. Tôi đang thiếu gì?
CromeX

6

Excel có một tính năng ít được biết đến được gọi là "Truy vấn web" cho phép bạn truy xuất dữ liệu từ hầu hết mọi trang web mà không cần lập trình bổ sung.

Truy vấn web về cơ bản chạy một yêu cầu HTTP trực tiếp từ bên trong Excel và sao chép một số hoặc tất cả dữ liệu đã nhận (và định dạng tùy chọn) vào trang tính.

Sau khi xác định xong truy vấn web, bạn có thể làm mới nó bất kỳ lúc nào mà không cần rời khỏi excel. Vì vậy, bạn không phải thực sự "xuất" dữ liệu và lưu nó vào một tệp - bạn muốn làm mới dữ liệu giống như từ cơ sở dữ liệu.

Bạn thậm chí có thể sử dụng các tham số URL bằng cách để excel nhắc bạn về các tiêu chí lọc nhất định, v.v.

Tuy nhiên, khuyết điểm mà tôi nhận thấy cho đến nay là:

  • dữ liệu được tải động không thể truy cập được vì Javascript không được thực thi
  • Độ dài URL bị giới hạn

Đây là câu hỏi về cách tạo truy vấn web trong Excel. Nó liên kết đến trang Trợ giúp của Microsoft về Cách lấy dữ liệu bên ngoài từ một trang Web


Điều này sẽ không hoạt động nếu url nằm sau tường đăng nhập.
Achshar

Nó làm việc với cơ bản và cũng thành xác thực dựa nhưng với sau này bạn có thể phải bấm vào "chỉnh sửa truy vấn" để nhập lại thông tin và có được một cookie mới theo thời gian
HAL 9000

5

Đây là một php nhưng bạn có thể thay đổi nó thành javascript:

<?php>
$colgroup = str_repeat("<col width=86>",5);
$data = "";
$time = date("M d, y g:ia");
$excel = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns=\"http://www.w3.org/TR/REC-html40\">
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
<head>
<meta http-equiv=\"Content-type\" content=\"text/html;charset=utf-8\" />
<style id=\"Classeur1_16681_Styles\">
.xl4566 {
color: red;
}
</style>
</head>
<body>
<div id=\"Classeur1_16681\" align=center x:publishsource=\"Excel\">
<table x:str border=0 cellpadding=0 cellspacing=0 style=\"border-collapse: collapse\">
<colgroup>$colgroup</colgroup>
<tr><td class=xl2216681><b>Col1</b></td><td class=xl2216681><b>Col2</b></td><td class=xl2216681 ><b>Col3</b></td><td class=xl2216681 ><b>Col4</b></td><td class=xl2216681 ><b>Col5</b></td></tr>
<tr><td class=xl4566>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>
</table>
</div>
</body>
</html>";
  $fname = "Export".time().".xls";
  $file = fopen($fname,"w+");
  fwrite($file,$excel);
  fclose($file);
  header('Content-Type: application/vnd.ms-excel');
  header('Content-Disposition: attachment; filename="'.basename($fname).'"');
  readfile($fname);
  unlink($fname); ?>    

5

Đầu tiên, tôi không khuyên bạn nên thử xuất Html và hy vọng rằng phiên bản Excel của người dùng sẽ chọn nó. Kinh nghiệm của tôi rằng giải pháp này đầy rẫy các vấn đề bao gồm sự không tương thích với máy khách Macintosh và gây ra lỗi cho người dùng rằng tệp được đề cập không có định dạng được chỉ định. Giải pháp thân thiện với người dùng, chống đạn nhất là giải pháp phía máy chủ, nơi bạn sử dụng thư viện để tạo tệp Excel thực và gửi lại tệp đó cho người dùng. Giải pháp tốt nhất tiếp theo và giải pháp phổ quát hơn sẽ là sử dụng định dạng Open XML. Tôi đã gặp phải một số vấn đề tương thích hiếm gặp với các phiên bản Excel cũ hơn nhưng nhìn chung, điều này sẽ cung cấp cho bạn giải pháp hoạt động trên mọi phiên bản Excel bao gồm cả máy Mac.

Mở XML


4

mozilla vẫn hỗ trợ 64 URI cơ sở. Điều này cho phép bạn soạn nội dung nhị phân động bằng cách sử dụng javascript:

<a href="data:application/vnd.ms-excel<base64 encoded binary excel content here>"> download xls</a>

nếu tệp excel của bạn không đẹp mắt (không có sơ đồ, công thức, macro), bạn có thể tìm hiểu định dạng và soạn các byte cho tệp của mình, sau đó mã hóa chúng bằng base64 và đưa vào href

tham khảo https://developer.mozilla.org/en/data_URIs


2

Điều này thực sự đơn giản hơn bạn nghĩ: "Chỉ cần" sao chép bảng HTML (nghĩa là: Mã HTML cho bảng) vào khay nhớ tạm. Excel biết cách giải mã bảng HTML; nó thậm chí sẽ cố gắng duy trì các thuộc tính.

Phần khó là "sao chép bảng vào khay nhớ tạm" vì không có cách tiêu chuẩn nào để truy cập khay nhớ tạm từ JavaScript. Xem bài đăng trên blog này: Truy cập Bảng tạm Hệ thống bằng JavaScript - Chén Thánh?

Bây giờ tất cả những gì bạn cần là bảng dưới dạng HTML. Tôi đề xuất jQuery và phương thức html () .


2

Mã này chỉ dành cho IE vì vậy nó chỉ hữu ích trong những trường hợp bạn biết tất cả người dùng của mình sẽ sử dụng IE (chẳng hạn như trong một số môi trường công ty).

<script Language="javascript">
function ExportHTMLTableToExcel()
{
   var thisTable = document.getElementById("tbl").innerHTML;
   window.clipboardData.setData("Text", thisTable);
   var objExcel = new ActiveXObject ("Excel.Application");
   objExcel.visible = true;

   var objWorkbook = objExcel.Workbooks.Add;
   var objWorksheet = objWorkbook.Worksheets(1);
   objWorksheet.Paste;
}
</script>

Tôi đã thử sử dụng mã này, nó đã mở bảng trong excel nhưng không có định dạng chính xác, có vẻ như nó chỉ sao chép mã html vào các bảng. như thế này: <TD class = "" bgColor = # ed9fff> SARTIN, DAN </TD> <TD class = "" bgColor = # ed9fff> BALAEZ, BARBARA </TD> Có đề xuất nào không?
Fahad

Đó là bởi vì anh ấy đã sử dụng innerHTML. Phần tử mà anh ấy nhận được LÀ bảng, vì vậy nó phải là bên ngoàiHTML. Tôi đã chỉnh sửa
user1566694

Tôi gặp lỗi: "Máy chủ tự động hóa không thể tạo đối tượng" khi tạo ActiveXObject. Làm thế nào tôi có thể sửa chữa nó?
Nk SP

2

Các giả định:

  1. url đã cho

  2. chuyển đổi phải được thực hiện ở phía khách hàng

  3. hệ thống là Windows, Mac và linux

Giải pháp cho Windows:

mã python mở cửa sổ tức là và có quyền truy cập vào nó: biến theurl chứa url ('http: //')

ie = Dispatch("InternetExplorer.Application")
ie.Visible = 1
ie.Navigate(theurl)

Lưu ý: nếu trang không thể truy cập trực tiếp nhưng đăng nhập, bạn sẽ cần phải xử lý điều này bằng cách nhập dữ liệu biểu mẫu và mô phỏng các hành động của người dùng với python

đây là ví dụ

from win32com.client import Dispatch
ie.Document.all('username').value=usr
ie.Document.all('password').value=psw

cách thức tương tự để truy xuất dữ liệu từ trang web. Giả sử phần tử có id 'el1' chứa dữ liệu. truy xuất văn bản phần tử đến biến

el1 = ie.Document.all('el1').value

thì khi dữ liệu nằm trong biến python, bạn có thể mở màn hình excel theo cách tương tự bằng cách sử dụng python:

from win32com.client import Dispatch
xlApp = Dispatch("Excel.Application")
xlWb = xlApp.Workbooks.Open("Read.xls")
xlSht = xlWb.WorkSheets(1)
xlSht.Cells(row, col).Value = el1

Giải pháp cho Mac:

chỉ mẹo: sử dụng AppleScript - nó có API đơn giản và tương tự như win32com.client Dispatch

Giải pháp cho Linux:

java.awt.Robot có thể hoạt động cho điều này nó có nhấp chuột, nhấn phím (có thể sử dụng phím nóng), nhưng không có API nào cho Linux mà tôi biết có thể hoạt động đơn giản như AppleScript


1

tìm kiếm đơn giản của google cho ra kết quả này:

Nếu dữ liệu thực sự là một trang HTML và KHÔNG được tạo bởi ASP, PHP hoặc một số ngôn ngữ kịch bản khác và bạn đang sử dụng Internet Explorer 6 và bạn đã cài đặt Excel trên máy tính của mình, chỉ cần nhấp chuột phải vào trang và xem thông qua menu. Bạn sẽ thấy "Xuất sang Microsoft Excel." Nếu tất cả các điều kiện này là đúng, hãy nhấp vào mục menu và sau một vài lời nhắc, nó sẽ được nhập vào Excel.

nếu bạn không thể làm điều đó, anh ấy đưa ra một phương pháp "kéo và thả" thay thế:

http://www.mrkent.com/tools/converter/



0

Có hai cách thực tế để thực hiện việc này tự động trong khi chỉ có một giải pháp có thể được sử dụng trong tất cả các trình duyệt. Trước hết, bạn nên sử dụng đặc tả xml mở để xây dựng trang tính excel. Có các plugin miễn phí của Microsoft làm cho định dạng này cũng có sẵn cho các phiên bản văn phòng cũ hơn. Xml mở là tiêu chuẩn kể từ office 2007. Hai cách hiển nhiên là phía máy chủ hoặc phía máy khách.

Việc triển khai phía máy khách sử dụng tiêu chuẩn CSS mới cho phép bạn lưu trữ dữ liệu thay vì chỉ URL của dữ liệu. Đây là một cách tiếp cận tuyệt vời vì bạn không cần bất kỳ cuộc gọi máy chủ nào, chỉ cần dữ liệu và một số javascript. Nhược điểm giết chết là microsoft không hỗ trợ tất cả các phần của nó trong phiên bản IE hiện tại (tôi không biết về IE9). Microsoft giới hạn dữ liệu là hình ảnh nhưng chúng tôi sẽ cần một tài liệu. Trong firefox nó hoạt động khá tốt. Đối với tôi, IE là điểm chết.

Cách khác là sử dụng triển khai bên máy chủ. Cần có nhiều triển khai XML mở cho tất cả các ngôn ngữ. Bạn chỉ cần vẽ một đồ thị. Trong hầu hết các trường hợp, đây sẽ là cách đơn giản nhất để sửa đổi Viewmodel để tạo ra Tài liệu nhưng chắc chắn bạn có thể gửi tất cả dữ liệu từ Clientside trở lại máy chủ và thực hiện tương tự.


Người phản đối có thể vui lòng cho biết lý do của việc phản đối không?
sra

0
   function normalexport() {

       try {
           var i;
           var j;
           var mycell;
           var tableID = "tblInnerHTML";
           var drop = document.getElementById('<%= ddl_sections.ClientID %>');
           var objXL = new ActiveXObject("Excel.Application");
           var objWB = objXL.Workbooks.Add();
           var objWS = objWB.ActiveSheet;
           var str = filterNum(drop.options[drop.selectedIndex].text);
           objWB.worksheets("Sheet1").activate; //activate dirst worksheet
           var XlSheet = objWB.activeSheet; //activate sheet
           XlSheet.Name = str; //rename


           for (i = 0; i < document.getElementById("ctl00_ContentPlaceHolder1_1").rows.length - 1; i++) {
               for (j = 0; j < document.getElementById("ctl00_ContentPlaceHolder1_1").rows(i).cells.length; j++) {
                   mycell = document.getElementById("ctl00_ContentPlaceHolder1_1").rows(i).cells(j);

                   objWS.Cells(i + 1, j + 1).Value = mycell.innerText;

                   //                                                objWS.Cells(i + 1, j + 1).style.backgroundColor = mycell.style.backgroundColor;
               }
           }

           objWS.Range("A1", "L1").Font.Bold = true;
           //                objWS.Range("A1", "L1").Font.ColorIndex = 2;
           //                 objWS.Range("A1", "Z1").Interior.ColorIndex = 47;

           objWS.Range("A1", "Z1").EntireColumn.AutoFit();

           //objWS.Range("C1", "C1").ColumnWidth = 50;

           objXL.Visible = true;

       } catch (err) {
           alert("Error. Scripting for ActiveX might be disabled")
           return
       }
       idTmr = window.setInterval("Cleanup();", 1);

   }


   function filterNum(str) {

       return str.replace(/[ / ]/g, '');
   }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.