代码语言
.
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
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
导出word 和中文乱码
作者:
一铛
/ 发布于
2015/5/6
/
967
<span style="font-size: 12px;"><pre name="code" class="csharp"><pre name="code" class="csharp"> protected void btnWord_Click(object sender, EventArgs e)</span> { string strSql = "SELECT语句filename"; string filename = this.Sql.GetString(strSql) + DateTime.Now.ToString("yyyyMMdd"); strSql = "SELECT 主循环"; DataTable dt = GetDataTable(strSql); if (dt.Rows.Count == 0 || dt == null) { this.MsgBox("读取数据失败!"); return; } //这块就像html里面类似 Response.ContentType = "application/msword"; Response.ContentEncoding = System.Text.Encoding.UTF8; Response.AppendHeader("Content-Disposition", "attachment;filename=" + ToHexString(filename) + ".doc");//ToHexString(filename)防止中文乱码 StringBuilder sb = new StringBuilder(); for (int i = 0; i < dt.Rows.Count; i++) { strSql = "SELECT 子循环"; DataTable dtview = this.Sql.GetDataTable(strSql); if (dtview.Rows.Count > 0) { sb.Append("<table><tr><td colspan='3' width='1000' align='center'>Tilte公司</td><tr>"); sb.Append("<tr><td colspan='3' width='1000' align='center'>Title标题</td></tr>"); sb.AppendFormat("<tr><td width='300' align='left'>作业:{0}</td><td width='400' align='center'>单位:{1}</td><td width='300' align='right'>编号:{2}</td></tr>", dt.Rows[i]["列名"].ToString(), dt.Rows[i]["列名"].ToString(), dt.Rows[i]["列名"].ToString()); sb.AppendFormat("<tr><td align='left'>日 期:{0}</td><td></td><td align='right'>期间:{1}</td></tr></table>", DateTime.Parse(dtview.Rows[0]["列名"].ToString()).ToString("yyyy-MM-dd"), dt.Rows[i]["列名"].ToString()); sb.Append("<table border='1'><tr><th rowspan='2' width='420'>重 点</th><th colspan='3' width='160'>标 准</th><th rowspan='2' width='420'>结果<th></tr><tr><th>是</th><th>否</th><th>不适用</th></tr>"); for (int j = 0; j < dtview.Rows.Count; j++) { sb.AppendFormat("<tr><td width='420'>{0}</td>", (j + 1).ToString() + "." + dtview.Rows[j]["列名"].ToString()); switch (int.Parse(dtview.Rows[j]["lngrule"].ToString())) { case 1: sb.AppendFormat("<td>{0}</td><td></td><td></td>", "√"); break; case 2: sb.AppendFormat("<td></td><td>{0}</td><td></td>", "√"); break; case 3: sb.AppendFormat("<td></td><td></td><td>{0}</td>", "√"); break; } sb.AppendFormat("<td width='420'>{0}</td>", dtview.Rows[j]["列名"].ToString()); sb.Append("</tr>"); } sb.Append("</table>"); sb.Append("<table><tr><td colspan='5' height='25'></td><td colspan='5'></td><td colspan='5' height='25'></td></tr></table>"); } } Response.Write(sb.ToString()); Response.End(); } #region 保存word中文名称乱码 /// <summary> /// 为字符串中的非英文字符编码 /// </summary> /// <param name="s"></param> /// <returns></returns> public string ToHexString(string s) { char[] chars = s.ToCharArray(); StringBuilder builder = new StringBuilder(); for (int index = 0; index < chars.Length; index++) { bool needToEncode = NeedToEncode(chars[index]); if (needToEncode) { string encodedString = ToHexString(chars[index]); builder.Append(encodedString); } else { builder.Append(chars[index]); } } return builder.ToString(); } /// <summary> ///指定 一个字符是否应该被编码 /// </summary> /// <param name="chr"></param> /// <returns></returns> private bool NeedToEncode(char chr) { string reservedChars = "$-_.+!*'(),@=&"; if (chr > 127) return true; if (char.IsLetterOrDigit(chr) || reservedChars.IndexOf(chr) >= 0) return false; return true; } /// <summary> /// 为非英文字符串编码 /// </summary> /// <param name="chr"></param> /// <returns></returns> private string ToHexString(char chr) { UTF8Encoding utf8 = new UTF8Encoding(); byte[] encodedBytes = utf8.GetBytes(chr.ToString()); StringBuilder builder = new StringBuilder(); for (int index = 0; index < encodedBytes.Length; index++) { builder.AppendFormat("%{0}", Convert.ToString(encodedBytes[index], 16)); } return builder.ToString(); } #endregion
试试其它关键字
导出word
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
一铛
贡献的其它代码
(
12
)
.
判断Office版本
.
将Excel导成xml文件
.
处理图片水印
.
处理文字图片
.
生成缩略图
.
图片文字放置位置
.
保存不同类型的格式的图片和路径
.
TextBox控件设置ReadOnly="true"后台取不到值
.
confirm alert 换行
.
导出word 和中文乱码
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3