将Excel另存为html时怎么在后台控制html中内容自动居中并固定表头?

「已注销」 2017-06-26 11:07:00
如题,类似在Excel中插入空白列或者空白行就不要说了,谢谢
...全文
409 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这个是 html 文件解析问题,其实跟 excel 一点关系都没有。
  • 打赏
  • 举报
回复
你应该将产生的 html 文件,使用 HtmlAgilityPack 或者其它方式读取出来,然后查找和修改其标题部分。 excel “另存为 html ”做不到你说的那种东西。
「已注销」 2017-06-28
  • 打赏
  • 举报
回复
引用 2 楼 qq_37349626 的回复:
[quote=引用 1 楼 DOwnstairs 的回复:] <center></center> 这个标签可以满足你的需求,这适当的位置插入即可
怎么加呢,能说具体点吗?[/quote]顶贴
「已注销」 2017-06-28
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
这个是 html 文件解析问题,其实跟 excel 一点关系都没有。

再请教一个问题,现在改用GridView+superTable固定表头,在合并单元格时出现了问题,设置跨列无效,导致后面数据前移,js不熟,不知道什么原因:
想要的效果:

问题图片:

引用:
<script type="text/javascript" src="../JS/superTables.js"></script>
<link href="../Styles/superTables_Default.css" rel="Stylesheet" type="text/css" />
样式:
         .gridcell{ padding:5px;}
.fakeContainer {
margin-left:auto;
margin-right:auto;
border: solid 1px #ccc;
width: 563px;
height: 600px;
overflow: hidden;
}

页面:
       <asp:GridView  ID="avayatel" runat="server"  Font-Size="14pt"  BorderColor="#CCCCCC"  BorderStyle="Solid"  BorderWidth="1px" HorizontalAlign="Center">
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" Wrap="False" CssClass="gridcell"/>
<RowStyle ForeColor="#000066"/>
</asp:GridView>

js代码:
       var grid = document.getElementById("<%=avayatel.ClientID%>");
//alert(grid);
if (grid != null && grid != undefined) {
grid.parentNode.className = "fakeContainer";

(function () {
var start = new Date();

superTable("<%=avayatel.ClientID%>", {
cssSkin: "Default",
// fixedColsdd 设置要固定的列数
fixedCols: 0,
onFinish: function () {
// Basic row selecting for a superTable with/without fixed columns

if (this.fixedCols == 0) {

for (var i = 0, j = this.sDataTable.tBodies[0].rows.length; i < j; i++) {
//this.sDataTable.tBodies[0].rows[i] 此表格中tbody的某一行
this.sDataTable.tBodies[0].rows[i].onclick = function (i) {
var clicked = false;
var dataRow = this.sDataTable.tBodies[0].rows[i];
//设置点击后颜色变化
return function () {
if (clicked) {
dataRow.style.backgroundColor = "#ffffff";
clicked = false;
}
else {
dataRow.style.backgroundColor = "#eeeeee";
clicked = true;
}
}
} .call(this, i);
}
}
else {
for (var i = 0, j = this.sDataTable.tBodies[0].rows.length; i < j; i++) {
//xugang begin
if (i % 2 == 0) {
this.sDataTable.tBodies[0].rows[i].style.backgroundColor = "#f5ffef";
}
if (i >= (j - 2)) {
this.sDataTable.tBodies[0].rows[i].style.backgroundColor = "#eeeeee"; //"#ffffd2";
}
//xugang end
this.sDataTable.tBodies[0].rows[i].onclick = this.sFDataTable.tBodies[0].rows[i].onclick = function (i) {
var clicked = false;
var dataRow = this.sDataTable.tBodies[0].rows[i];
var fixedRow = this.sFDataTable.tBodies[0].rows[i];

var dataRow_old_Color = dataRow.style.backgroundColor;
var fixedRow_old_Color = fixedRow.style.backgroundColor;
return function () {
if (clicked) {
dataRow.style.backgroundColor = fixedRow_old_Color; //"#ffffff";
fixedRow.style.backgroundColor = fixedRow_old_Color; //"#eeeeee";
clicked = false;
}
else {

dataRow.style.backgroundColor = "#ffffd2";
fixedRow.style.backgroundColor = "#adadad";
clicked = true;
}
}
} .call(this, i);
}
}
return this;
}
});
})();
}

后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace jifenmaneger.JifenMall
{
//权限控制接口:AvayaPostionType
public partial class avayaPhone_east : AvayaPostionType
{
DAL.AvayaPhone phone = new DAL.AvayaPhone();
public void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AvayaPhoneBinder();
GridView gv = avayatel;
avayaPhone_east.MergeRow(gv, 0);
}
}
//绑定数据时,将数据库中的列标题改成中文标题
public void AvayaPhoneBinder()
{
System.Data.DataTable table = phone.avayaPhoneInfo();
avayatel.DataSource = table;
table.Columns[0].ColumnName = "分部";
table.Columns[1].ColumnName = "省份";
table.Columns[2].ColumnName = "城市";
table.Columns[3].ColumnName = "岗位";
table.Columns[4].ColumnName = "使用人";
table.Columns[5].ColumnName = "联系号码";
avayatel.DataBind();
}

//合并单元格,currentCol列索引
public static void MergeRow(GridView gv, int currentCol)
{
int rowSpanNum = 1,i = 0;
while(i < gv.Rows.Count-1){
//获取索引第i行的集合
GridViewRow currentRow = gv.Rows[i];
//i是GridView中行的索引
for (++i; i < gv.Rows.Count; i++)
{
//获取索引第i+1行的集合
GridViewRow prevRow = gv.Rows[i];
//获取第i行中第currentCol列单元格的内容
//是否相等
if (currentRow.Cells[currentCol].Text == prevRow.Cells[currentCol].Text)
{
//不隐藏
prevRow.Cells[currentCol].Visible = false;
rowSpanNum++;
}
else {
currentRow.Cells[currentCol].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}
if (i == gv.Rows.Count - 1)
{
currentRow.Cells[currentCol].RowSpan = rowSpanNum;
}
}
}
}
}
}
「已注销」 2017-06-28
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
你应该将产生的 html 文件,使用 HtmlAgilityPack 或者其它方式读取出来,然后查找和修改其标题部分。 excel “另存为 html ”做不到你说的那种东西。
谢谢回复,上司又要求不写预览了,改成表格形式,我试着搜索了HtmlAgilityPack 的代码,获取body节点,再给body节点添加样式,不知道是否可行后面的却不知道怎么写
            WebClient wc = new WebClient();
            wc.BaseAddress = "http://localhost:64754/Phone.aspx";
            wc.Encoding = Encoding.UTF8;
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            string html = wc.DownloadString("excel/sells.html");
            doc.LoadHtml(html);
            HtmlNode node = doc.DocumentNode.SelectSingleNode("/html/body");
SoulRed 2017-06-27
  • 打赏
  • 举报
回复
<center></center> 这个标签可以满足你的需求,这适当的位置插入即可
「已注销」 2017-06-27
  • 打赏
  • 举报
回复
引用 1 楼 DOwnstairs 的回复:
<center></center> 这个标签可以满足你的需求,这适当的位置插入即可
怎么加呢,能说具体点吗?
Excel使用过程,运用一些技巧会使得我们的工作效率提高很多。而这些技巧往往又被忽略或忘记怎么去使用。本套课程基于此整理了一些Excel方面的技巧,这些呢为学习笔记集锦,前后章内容不存在连贯性,仅整理一些常用的技巧与大家分享。【说明:Excel为2013版本,无下载资料,请参看课程视频学习。】l  本课程知识点l  第1节:概述l  第2节:Excel大批量数据自动填写灵活妙用经验分享l  第3节:巧为Excel2013单元格的文本内容增加拼音l  第4节:Excel在单元格内实现自动换行l  第5节:Excel快速使用函数计算不同区域数据l  第6节:Excel单元格超长内容不能显示全巧妙设置l  第7节:巧妙运用之Excel单元格自动快速输入带有小数点的数值l  第8节:Excel巧妙使用回车键快速粘贴l  第9节:职场必会Excel函数经典应用,使用And函数多条件判断l  第10节:Excel函数经典应用之IF函数条件判断范例l  第11节:Excel技巧之巧妙使用不同颜色区分不同类型数据l  第12节:巧妙快速调整Excle所有单元格或局部单元格l  第13节:巧妙快速切换Excel单元格回车后的纵向输入和横向输入l  第14节:巧妙理解记忆Excel公式的相对引用和绝对引用l  第15节:Excel单元格文风快速两端对齐l  第16节:Excel2013文档内容快速打印l  第17节:excel直接使用模板制作精美格式样式l  第18节: excel使用可以直接使用翻译功能英文互译l  第19节:不需要截图工具直接使用excel复制图片l  第20节:excel粘贴也可以多种方式选择了l  第21节:巧为excel单元格画双划线l  第22节:为excel的文字或数字添加单划线或双划线l  第23节:excel连续微调单元格内容字号的大小l  第24节: 快速的将长文本内容变为自适应多行文本l  第25节:excel多单元格合并l  第26节:单元格内容连续微调缩进量l  第27节:将文本内容倾斜到任意角度l  第28节:单元格内容多种形式的对齐方式l  第29节:快速将数据转换为会计专用数据l  第30节:快速为数据增加或减少小数位数

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧