代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.Net
】
将word表格读取出来,然后显示到gridview
作者:
Dezai.CN
/ 发布于
2011/8/23
/
657
<div> 先给gridview一个数据源,是什么呢 datatable 这个函数 public static DataTable WordTable(object path) { ApplicationClass cls = null; Document doc = null; Microsoft.Office.Interop.Word.Table table = null; object missing = Missing.Value; //object path = TextBoxPath.Text.Trim(); cls = new ApplicationClass(); //try //{ doc = cls.Documents.Open (ref path, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); table = doc.Tables[1]; float[] cellWith = new float[table.Rows.Count]; bool modOk = false; #region 声明一个DataTable DataTable dt = new DataTable(); int spaceCount = 1; for (int ii = 0; ii < table.Columns.Count; ii++) { dt.Columns.Add("cl" + ii.ToString(), typeof(string)); } for (int ii = 0; ii < table.Rows.Count; ii++) { DataRow rw = dt.NewRow(); for (int jj = 0; jj < table.Columns.Count; jj++) { rw["cl" + jj.ToString()] = ""; spaceCount++; } dt.Rows.Add(rw); } #endregion #region #endregion #region 选一个没有任何合并的行,并把该行的单元格的宽作为标准 for (int ii = 0; ii < table.Rows.Count; ii++) { for (int jj = 0; jj < table.Columns.Count; jj++) { try { cellWith[jj] = (float)table.Cell(ii + 1, jj + 1).Width; if (jj + 1 == table.Columns.Count) { modOk = true; break; } } catch { break; } } if (modOk == true) break; } #endregion #region 读word表格,写入DataTable float rowLength = 0; for (int ii = 0; ii < cellWith.Length; ii++) { rowLength += cellWith[ii]; rowLength = float.Parse(rowLength.ToString("#0.00")); } for (int ii = 0; ii < table.Rows.Count; ii++) { float rowLengthCurrent = 0f; for (int jj = 0; jj < table.Columns.Count; jj++) { bool IfBreak = false; bool IfContinue = false; try { rowLengthCurrent += (float)table.Cell(ii + 1, jj + 1).Width; rowLengthCurrent = float.Parse(rowLengthCurrent.ToString("#0.00")); if (table.Cell(ii + 1, jj + 1).Width != cellWith[jj]) { float real = 0f; for (int mm = jj; mm < cellWith.Length - 1 - jj; mm++) { real += (float)cellWith[mm]; real = float.Parse(real.ToString("#0.00")); string txt = string.Empty; if (mm == jj) { txt = table.Cell(ii + 1, jj + 1).Range.Text; txt = txt.Substring(0, txt.Length - 2); } else txt = "<a href="mailto:#!@#$%"><font color="#286446">#!@#$%</font></a>^"; dt.Rows[ii][mm] = txt; if (real == table.Cell(ii + 1, jj + 1).Width) { if (mm + 1 == dt.Columns.Count) { IfBreak = true; break; } else { jj = mm + 1; IfContinue = true; break; } //Response.Write("从"+jj.ToString()+"到"+mm.ToString()); }//////////////////////////////////////////////////////////////////// } if (IfBreak == true) break; if (IfContinue == true) continue; } string txtNor = table.Cell(ii + 1, jj + 1).Range.Text; dt.Rows[ii][jj] = txtNor.Substring(0, txtNor.Length - 2); if (rowLengthCurrent == rowLength) { continue; } } catch { if (ii > 0) { rowLengthCurrent += cellWith[jj]; rowLengthCurrent = float.Parse(rowLengthCurrent.ToString("#0.00")); //dt.Rows[ii][jj] = dt.Rows[ii - 1][jj].ToString(); dt.Rows[ii][jj] = "<a href="mailto:%5E!@#$%"><font color="#286446">^!@#$%</font></a>^"; } continue; } } } if (doc != null) doc.Close(ref missing, ref missing, ref missing); cls.Quit(ref missing, ref missing, ref missing); return dt; #endregion } 然后gridview绑定之后再调用一个合并单元格的方法,什么方法呢,如下 public static void GridViewMerAll(GridView gv) { for (int ii = 0; ii < gv.Rows.Count; ii++) { int m = 1; int n = 1; for (int jj = 0; jj < gv.Rows[ii].Cells.Count; jj++) { if (gv.Rows[ii].Cells[jj].Text.Contains("<a href="mailto:#!@#$%"><font color="#286446">#!@#$%</font></a>^")) { common.GridViewMergeCell.GroupRow(gv, ii, jj - m, jj + 1); m++; } if (gv.Rows[ii].Cells[jj].Text.Contains("<a href="mailto:%5E!@#$%"><font color="#286446">^!@#$%</font></a>^")) { common.GridViewMergeCell.GroupCol(gv, jj, ii - n, ii + 1); n++; } } } } </div>
试试其它关键字
读取word表格
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3