110,502
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 用指定字符串替换书签内容,这种方法需要便利每一个对像效率低,放弃。
/// </summary>
/// <param name="bms">书签集合对象</param>
/// <param name="bmName">书签名</param>
/// <param name="tag">替换字符串</param>
private void replace(Word.Bookmarks bms, valueinfo target)
{
object missing = System.Reflection.Missing.Value;
foreach (Word.Bookmark bm in bms)
{
//判断变量类型
if (target.strval.GetType().ToString() != "System.String")
{
if (bm.Name.Equals(target.strname))
{
bm.Select();
//如果表上部有合并单元需要加上合并单元行数,第一个值是行第二个是列
inputtable(bm.Range.Tables[1], (DataTable)target.strval,bm.Range.Rows.Height, 7, 3, 1);
}
}
else
{
if (bm.Name.Equals(target.strname))
{
//System.Windows.Forms.MessageBox.Show( bm.Name + "OK");
bm.Select();
bm.Range.Text = (string)target.strval;
break;
}
}
}
}
/// <summary>
/// 将数据添入指定WORD表区域,注意列数量保持和WORD一样不然出错。
/// </summary>
/// <param name="wordtab">标签位置表对像</param>
/// <param name="dts">要添加的数据源</param>
/// <param name="rowscont">原行数量</param>
/// <param name="tablehei">行高</param>
/// <param name="x">开始添加的行</param>
/// <param name="y">开始添加的列</param>
private void inputtable(Word.Table wordtab,DataTable dts,float tablehei,int rowscont, int x,int y)
{
//Word.Table newTable = bm.Range.Tables[1];
//bm.Range.Tables[1].Rows.Height;
//粘贴
//bm.Range.Paste();
//添加一行
if (dts.Rows.Count > 0)
{
object ff = 1;
//得出控制高度
tablehei = tablehei * rowscont;
//bm.Application.ActiveWindow.View.ShowFieldCodes = true;
float rowhei = 0;
if (dts.Rows.Count > rowscont)
{
ff = dts.Rows.Count - rowscont;
App.Selection.InsertRows(ref ff);
//获得总高度,以保持高度不变
tablehei = App.Selection.Cells.Height * rowscont;
rowhei = tablehei / dts.Rows.Count;
}
for (int b = 0; b < dts.Columns.Count; b++)
{
for (int i = 0; i < dts.Rows.Count; i++)
{
if (rowhei != 0)
{
wordtab.Cell(i + x, b + y).Height = rowhei;
}
wordtab.Cell(i + x, b + y).Range.Text = dts.Rows[i][b].ToString();
}
}
}
}
/// <summary>
/// 返回指定控件的Text值
/// </summary>
/// <param name="ControlName">控件名</param>
/// <returns>返回控件的Text值</returns>
private String getControlText(String ControlName)
{
foreach (Control objCtl in this.Panel1.Controls)
{
if (objCtl.ToString() == "System.Web.UI.WebControls.TextBox")
{
TextBox ff = (TextBox)objCtl;
if (ff.ID == ControlName)
{
return ff.Text;
}
}
}
return "";
}
protected void Button2_Click(object sender, EventArgs e)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentType = "application/msword";
resp.WriteFile(Server.MapPath(".") + "\\doc\\2.doc");
}
protected void Button3_Click(object sender, EventArgs e)
{
DataRow dr = clsglo.gtb.NewRow();
dr["ID"] = "test";
dr["Sex"] = "0";
clsglo.gtb.Rows.Add(dr);
GridView1.DataSource = clsglo.gtb;
GridView1.DataBind();
}
private void inputdata(Word.Bookmarks bms,string strmd5id)
{
string strfidsql;//得到所有字段
string strdatasql;//得到数据
string strbmval;//标签名
string strtab;//各子表查询Sql
DataSet ds = new DataSet();
DataSet dstab = new DataSet();//用来更新子表
//strfidsql = "SELECT value as dname,objname as vname FROM ::fn_listextendedproperty(NULL,'user','dbo','table','gstab','column',default)";
//SqlDataAdapter sdafid=new SqlDataAdapter(strfidsql,clsglo.con);
//sdafid.Fill(ds, "fid");
strdatasql = "select top 1 * from gstab where gsnum='" + strmd5id + "'";
SqlDataAdapter sdafid = new SqlDataAdapter(strdatasql, clsglo.con);
sdafid.Fill(ds, "val");
//循环所有公司表字段
object missing = System.Reflection.Missing.Value;
foreach (Word.Bookmark bm in bms)
{
if (bm.Name.IndexOf("00") > 0)
{
strbmval = bm.Name.Remove(bm.Name.IndexOf("00"));
}
else
{
strbmval = bm.Name;
}
//try
//{
bm.Select();
if (ds.Tables["val"].Columns.Contains(strbmval))//列是否存在
{
if (ds.Tables["val"].Rows[0][strbmval] != null)
{
bm.Range.Text = ds.Tables["val"].Rows[0][strbmval].ToString();
}
else
{
bm.Range.Text = "";
}
}
else
{
//非常规的WORD标记处理
switch (strbmval)
{
case "dbjltab":
{
strtab = "select fddbrjlqznyvc,fddbrjlqznyvc,fddbrjlgzzwvc from dbjltab where gsnum='" + strmd5id + "'";
sdafid = new SqlDataAdapter(strtab, clsglo.con);
dstab = new DataSet();
sdafid.Fill(dstab, "tab");
//如果表上部有合并单元需要加上合并单元行数,第一个值是行第二个是列
//bm.Select();
inputtable(bm.Range.Tables[1], dstab.Tables["tab"],bm.Range.Rows.Height , 6, 9, 2);
break;
}
case "dshtab":
break;
case "dwgdtab":
break;
case "gdrhztab":
break;
case "gdrtab":
break;
case "zdjftab":
break;
default:
{
break;
}
}
}
//}
//catch//没有找到字段名那就有可能是表
//{
//}
}
//for (int i = 0; i < ds.Tables["fid"].Rows.Count; i++)
//{
// if (ds.Tables["val"].Rows[0][ds.Tables["fid"].Rows[i]["vname"].ToString()] != null)
// {
// }
//}
}
/// <summary>
/// 插入公司信息表,所有非DATATABLE类型都将插入到公司信息
/// </summary>
/// 直接使用添加的变量集合
/// <returns></returns>
private string intogs()
{
try
{
string strfid = "";//插入的列字符串
string strval = "";//插入的值字符串
string strintosql = "";//最终生成的插入基本公司信息的SQL
SqlCommand scdinto = new SqlCommand();
//循环所有变量生成两个字符串
foreach (valueinfo s in clsglo.strarr)
{
//仅处理普通变量不处理表格型
if (s.strval.GetType().ToString() == "System.String")
{
strfid += s.strname + ",";
//检测是否需要加引号
if (s.inttype == 0)
{
strval += "'" + (string)s.strval + "',";
}
else
{
//不加引号
strval += (string)s.strval + ",";
}
}
}
//去掉最后面的对号
strfid = strfid.Remove(strfid.Length - 1, 1);
strval = strval.Remove(strval.Length - 1, 1);
//生成插入公司表sql
strintosql = "INSERT INTO gstab (" + strfid + ") VALUES (" + strval + ")";
scdinto.Connection = clsglo.con;
scdinto.CommandText = strintosql;
scdinto.ExecuteNonQuery();
return "";
}
catch (Exception ex)
{
return ex.ToString();
}
}
protected void Button4_Click(object sender, EventArgs e)
{
StartConvertPDF(Server.MapPath(".") + "\\doc\\2.doc", Server.MapPath(".") + "\\pdf\\45.pdf");
hl1.NavigateUrl = "pdf/45.pdf";
}
protected void Button5_Click(object sender, EventArgs e)
{
Response.Write("<script>window.open('pdf/45.pdf','_blank');</script>");
//HttpResponse resp;
//resp = Page.Response;
//resp.ContentType = "application/pdf";
//resp.WriteFile(Server.MapPath(".") + "\\pdf\\45.pdf");
}
}