Rick, 
   Do you mean that  <table border="2"> and <table style="border:2px"> don't mean the same thing? Their names suggest they do the same things. That's a terrible naming. Changing the former to the latter does fix the problem though. Why is that? 
     
Using the #+HTML_HEAD_EXTRA options as you suggest can also fix the problem. But could you explain why using the HTML_HEAD_EXTRA is more advisable than setting the <table style="border:2px"> directly as table attributes? What would you suggest if we want some tables have orders and others don't have borders in the same html webpage? 

Thank you. 

Shiyuan 


>    Org mode generated this line in the html for table but the border is not
>    displayed,Â
>    <table border="2" cellspacing="0" cellpadding="6" rules="groups"
>    frame="hsides">

The "border" attribute has nothing to do with it. It's the "frame" attribute
which sets the default top and bottom borders.
 
>    If we use css style to specify the border, Â the table border would show
>    up:Â
>    <table style="border:2px" cellspacing="0" cellpadding="6" rules="groups"
>    frame="hsides">

No. The CSS should be in the header, not an attribute of the tag. Have you
tried setting the 'HTML_HEAD_EXTRA' option?  somehting like:
#+HTML_HEAD_EXTRA: <style type="text/css">
#+HTML_HEAD_EXTRA: table {border-left: 1px solid black; border-right: 1px solid black;}
#+HTML_HEAD_EXTRA: </style>


rick