首页上一页 1 下一页尾页 4 条记录 1/1页
c#从入门到精通书里面28章那个人事管理系统编译没通过,出现十四个错误,我已经把数据库连接名称改为本地了的数据库名字了
发表在C#图书答疑
2012-10-22
是否精华
是
否
版块置顶:
是
否
设置时间:
非永久
永久
起始时间:
结束时间:
是否扣分:
是
否
警告 15 无法获取类型库“0002e157-0000-0000-c000-000000000046”版本 5.3 的文件路径。库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED)) PWMS
错误 1 未能找到类型或命名空间名称“Word”(是否缺少 using 指令或程序集引用?) C:\Documents and Settings\Administrator.72C898D4726D4D9\桌面\28源程序\PWMS\PWMS\PerForm\F_ManFile.cs 802 13 PWMS
书里是说想要对Word 文档进行操作,必须添加 Microsoft word 9.0 obeject library 引用,可是我找不到这个引用,找到的是12.0 object library 可是添加了还是不行
我用的系统是windows XP vs2010专业版 sql2008\SQLEXPRESS
public static string M_str_sqlcon = "Data Source=72C898D4726D4D9\\SQLEXPRESS;Database=db_PWMS;User id=sa;PWD=111";
错误 1 未能找到类型或命名空间名称“Word”(是否缺少 using 指令或程序集引用?) C:\Documents and Settings\Administrator.72C898D4726D4D9\桌面\28源程序\PWMS\PWMS\PerForm\F_ManFile.cs 802 13 PWMS
书里是说想要对Word 文档进行操作,必须添加 Microsoft word 9.0 obeject library 引用,可是我找不到这个引用,找到的是12.0 object library 可是添加了还是不行
我用的系统是windows XP vs2010专业版 sql2008\SQLEXPRESS
public static string M_str_sqlcon = "Data Source=72C898D4726D4D9\\SQLEXPRESS;Database=db_PWMS;User id=sa;PWD=111";
精彩评论 4
2012-10-23
板凳
读者朋友:
您好,Word 9.0引用是需要安装Word 2000才有的组件,我们还有一个Word 11.0引用(Word 2003)版本,你复制以下代码再试一下:
object Nothing = System.Reflection.Missing.Value;
object missing = System.Reflection.Missing.Value;
//创建Word文档
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
Microsoft.Office.Interop.Word.Document wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
wordApp.Visible = true;
//设置文档宽度
wordApp.Selection.PageSetup.LeftMargin = wordApp.CentimetersToPoints(float.Parse("2"));
wordApp.ActiveWindow.ActivePane.HorizontalPercentScrolled = 11;
wordApp.Selection.PageSetup.RightMargin = wordApp.CentimetersToPoints(float.Parse("2"));
Object start = Type.Missing;
Object end = Type.Missing;
PictureBox pp = new PictureBox();//新建一个PictureBox控件
int p1 = 0;
for (int i = 0; i < MyDS_Grid.Tables[0].Rows.Count; i++)
{
try
{
byte[] pic = (byte[])(MyDS_Grid.Tables[0].Rows[i][23]);//将数据库中的图片转换成二进制流
MemoryStream ms = new MemoryStream(pic);//将字节数组存入到二进制流中
pp.Image = Image.FromStream(ms);//二进制流Image控件中显示
pp.Image.Save(@"C:\22.bmp");//将图片存入到指定的路径
}
catch
{
p1 = 1;
}
object rng = Type.Missing;
string strInfo = "职工基本信息表" + "(" + MyDS_Grid.Tables[0].Rows[i][1].ToString() + ")";
start = 0;
end = 0;
wordDoc.Range(ref start, ref end).InsertBefore(strInfo);//插入文本
wordDoc.Range(ref start, ref end).Font.Name = "Verdana";//设置字体
wordDoc.Range(ref start, ref end).Font.Size = 20;//设置字体大小
wordDoc.Range(ref start, ref end).ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//设置字体居中
start = strInfo.Length;
end = strInfo.Length;
wordDoc.Range(ref start, ref end).InsertParagraphAfter();//插入回车
object missingValue = Type.Missing;
//如果location超过已有字符的长度将会出错。一定要比"明细表"串多一个字符
object location = strInfo.Length;
Microsoft.Office.Interop.Word.Range rng2 = wordDoc.Range(ref location, ref location);
Microsoft.Office.Interop.Word.Table tab = wordDoc.Tables.Add(rng2, 14, 6, ref missingValue, ref missingValue);
tab.Rows.HeightRule = Microsoft.Office.Interop.Word.WdRowHeightRule.wdRowHeightAtLeast;
tab.Rows.Height = wordApp.CentimetersToPoints(float.Parse("0.8"));
tab.Range.Font.Size = 10;
tab.Range.Font.Name = "宋体";
//设置表格样式
tab.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
tab.Borders.InsideLineWidth = Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
tab.Borders.InsideColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;
wordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//设置右对齐
tab.Cell(1, 5).Merge(tab.Cell(5, 6));//第5行显示
tab.Cell(6, 5).Merge(tab.Cell(6, 6));//第6行显示
tab.Cell(9, 4).Merge(tab.Cell(9, 6));//第9行显示
tab.Cell(12, 2).Merge(tab.Cell(12, 6));//第12行显示
tab.Cell(13, 2).Merge(tab.Cell(13, 6));//第13行显示
tab.Cell(14, 2).Merge(tab.Cell(14, 6));//第14行显示
//第1行赋值
tab.Cell(1, 1).Range.Text = "职工编号:";
tab.Cell(1, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][0].ToString();
tab.Cell(1, 3).Range.Text = "职工姓名:";
tab.Cell(1, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][1].ToString();
//插入图片
if (p1 == 0)
{
string FileName = @"C:\22.bmp";//图片所在路径
object LinkToFile = false;
object SaveWithDocument = true;
object Anchor = tab.Cell(1, 5).Range;//指定图片插入的区域
//将图片插入到单元格中
tab.Cell(1, 5).Range.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
}
p1 = 0;
//第2行赋值
tab.Cell(2, 1).Range.Text = "民族类别:";
tab.Cell(2, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][2].ToString();
tab.Cell(2, 3).Range.Text = "出生日期:";
try
{
tab.Cell(2, 4).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[i][3]).ToShortDateString());
}
catch { tab.Cell(2, 4).Range.Text = ""; }
//第3行赋值
tab.Cell(3, 1).Range.Text = "年龄:";
tab.Cell(3, 2).Range.Text = Convert.ToString(MyDS_Grid.Tables[0].Rows[i][4]);
tab.Cell(3, 3).Range.Text = "文化程度:";
tab.Cell(3, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][5].ToString();
//第4行赋值
tab.Cell(4, 1).Range.Text = "婚姻:";
tab.Cell(4, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][6].ToString();
tab.Cell(4, 3).Range.Text = "性别:";
tab.Cell(4, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][7].ToString();
//第5行赋值
tab.Cell(5, 1).Range.Text = "政治面貌:";
tab.Cell(5, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][8].ToString();
tab.Cell(5, 3).Range.Text = "单位工作时间:";
try
{
tab.Cell(5, 4).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[0][10]).ToShortDateString());
}
catch { tab.Cell(5, 4).Range.Text = ""; }
//第6行赋值
tab.Cell(6, 1).Range.Text = "籍贯:";
tab.Cell(6, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][24].ToString();
tab.Cell(6, 3).Range.Text = MyDS_Grid.Tables[0].Rows[i][25].ToString();
tab.Cell(6, 4).Range.Text = "身份证:";
tab.Cell(6, 5).Range.Text = MyDS_Grid.Tables[0].Rows[i][9].ToString();
//第7行赋值
tab.Cell(7, 1).Range.Text = "工龄:";
tab.Cell(7, 2).Range.Text = Convert.ToString(MyDS_Grid.Tables[0].Rows[i][11]);
tab.Cell(7, 3).Range.Text = "职工类别:";
tab.Cell(7, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][12].ToString();
tab.Cell(7, 5).Range.Text = "职务类别:";
tab.Cell(7, 6).Range.Text = MyDS_Grid.Tables[0].Rows[i][13].ToString();
//第8行赋值
tab.Cell(8, 1).Range.Text = "工资类别:";
tab.Cell(8, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][14].ToString();
tab.Cell(8, 3).Range.Text = "部门类别:";
tab.Cell(8, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][15].ToString();
tab.Cell(8, 5).Range.Text = "职称类别:";
tab.Cell(8, 6).Range.Text = MyDS_Grid.Tables[0].Rows[i][16].ToString();
//第9行赋值
tab.Cell(9, 1).Range.Text = "月工资:";
tab.Cell(9, 2).Range.Text = Convert.ToString(MyDS_Grid.Tables[0].Rows[i][26]);
tab.Cell(9, 3).Range.Text = "银行账号:";
tab.Cell(9, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][27].ToString();
//第10行赋值
tab.Cell(10, 1).Range.Text = "合同起始日期:";
try
{
tab.Cell(10, 2).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[i][28]).ToShortDateString());
}
catch { tab.Cell(10, 2).Range.Text = ""; }
tab.Cell(10, 3).Range.Text = "合同结束日期:";
try
{
tab.Cell(10, 4).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[i][29]).ToShortDateString());
}
catch { tab.Cell(10, 4).Range.Text = ""; }
tab.Cell(10, 5).Range.Text = "合同年限:";
tab.Cell(10, 6).Range.Text = Convert.ToString(MyDS_Grid.Tables[0].Rows[i][30]);
//第11行赋值
tab.Cell(11, 1).Range.Text = "电话:";
tab.Cell(11, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][17].ToString();
tab.Cell(11, 3).Range.Text = "手机:";
tab.Cell(11, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][18].ToString();
tab.Cell(11, 5).Range.Text = "毕业时间:";
try
{
tab.Cell(11, 6).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[i][21]).ToShortDateString());
}
catch { tab.Cell(11, 6).Range.Text = ""; }
//第12行赋值
tab.Cell(12, 1).Range.Text = "毕业学校:";
tab.Cell(12, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][19].ToString();
//第13行赋值
tab.Cell(13, 1).Range.Text = "主修专业:";
tab.Cell(13, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][20].ToString();
//第14行赋值
tab.Cell(14, 1).Range.Text = "家庭地址:";
tab.Cell(14, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][22].ToString();
wordDoc.Range(ref start, ref end).InsertParagraphAfter();//插入回车
wordDoc.Range(ref start, ref end).ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//设置字体居中
您好,Word 9.0引用是需要安装Word 2000才有的组件,我们还有一个Word 11.0引用(Word 2003)版本,你复制以下代码再试一下:
object Nothing = System.Reflection.Missing.Value;
object missing = System.Reflection.Missing.Value;
//创建Word文档
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
Microsoft.Office.Interop.Word.Document wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
wordApp.Visible = true;
//设置文档宽度
wordApp.Selection.PageSetup.LeftMargin = wordApp.CentimetersToPoints(float.Parse("2"));
wordApp.ActiveWindow.ActivePane.HorizontalPercentScrolled = 11;
wordApp.Selection.PageSetup.RightMargin = wordApp.CentimetersToPoints(float.Parse("2"));
Object start = Type.Missing;
Object end = Type.Missing;
PictureBox pp = new PictureBox();//新建一个PictureBox控件
int p1 = 0;
for (int i = 0; i < MyDS_Grid.Tables[0].Rows.Count; i++)
{
try
{
byte[] pic = (byte[])(MyDS_Grid.Tables[0].Rows[i][23]);//将数据库中的图片转换成二进制流
MemoryStream ms = new MemoryStream(pic);//将字节数组存入到二进制流中
pp.Image = Image.FromStream(ms);//二进制流Image控件中显示
pp.Image.Save(@"C:\22.bmp");//将图片存入到指定的路径
}
catch
{
p1 = 1;
}
object rng = Type.Missing;
string strInfo = "职工基本信息表" + "(" + MyDS_Grid.Tables[0].Rows[i][1].ToString() + ")";
start = 0;
end = 0;
wordDoc.Range(ref start, ref end).InsertBefore(strInfo);//插入文本
wordDoc.Range(ref start, ref end).Font.Name = "Verdana";//设置字体
wordDoc.Range(ref start, ref end).Font.Size = 20;//设置字体大小
wordDoc.Range(ref start, ref end).ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//设置字体居中
start = strInfo.Length;
end = strInfo.Length;
wordDoc.Range(ref start, ref end).InsertParagraphAfter();//插入回车
object missingValue = Type.Missing;
//如果location超过已有字符的长度将会出错。一定要比"明细表"串多一个字符
object location = strInfo.Length;
Microsoft.Office.Interop.Word.Range rng2 = wordDoc.Range(ref location, ref location);
Microsoft.Office.Interop.Word.Table tab = wordDoc.Tables.Add(rng2, 14, 6, ref missingValue, ref missingValue);
tab.Rows.HeightRule = Microsoft.Office.Interop.Word.WdRowHeightRule.wdRowHeightAtLeast;
tab.Rows.Height = wordApp.CentimetersToPoints(float.Parse("0.8"));
tab.Range.Font.Size = 10;
tab.Range.Font.Name = "宋体";
//设置表格样式
tab.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
tab.Borders.InsideLineWidth = Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
tab.Borders.InsideColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;
wordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//设置右对齐
tab.Cell(1, 5).Merge(tab.Cell(5, 6));//第5行显示
tab.Cell(6, 5).Merge(tab.Cell(6, 6));//第6行显示
tab.Cell(9, 4).Merge(tab.Cell(9, 6));//第9行显示
tab.Cell(12, 2).Merge(tab.Cell(12, 6));//第12行显示
tab.Cell(13, 2).Merge(tab.Cell(13, 6));//第13行显示
tab.Cell(14, 2).Merge(tab.Cell(14, 6));//第14行显示
//第1行赋值
tab.Cell(1, 1).Range.Text = "职工编号:";
tab.Cell(1, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][0].ToString();
tab.Cell(1, 3).Range.Text = "职工姓名:";
tab.Cell(1, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][1].ToString();
//插入图片
if (p1 == 0)
{
string FileName = @"C:\22.bmp";//图片所在路径
object LinkToFile = false;
object SaveWithDocument = true;
object Anchor = tab.Cell(1, 5).Range;//指定图片插入的区域
//将图片插入到单元格中
tab.Cell(1, 5).Range.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
}
p1 = 0;
//第2行赋值
tab.Cell(2, 1).Range.Text = "民族类别:";
tab.Cell(2, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][2].ToString();
tab.Cell(2, 3).Range.Text = "出生日期:";
try
{
tab.Cell(2, 4).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[i][3]).ToShortDateString());
}
catch { tab.Cell(2, 4).Range.Text = ""; }
//第3行赋值
tab.Cell(3, 1).Range.Text = "年龄:";
tab.Cell(3, 2).Range.Text = Convert.ToString(MyDS_Grid.Tables[0].Rows[i][4]);
tab.Cell(3, 3).Range.Text = "文化程度:";
tab.Cell(3, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][5].ToString();
//第4行赋值
tab.Cell(4, 1).Range.Text = "婚姻:";
tab.Cell(4, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][6].ToString();
tab.Cell(4, 3).Range.Text = "性别:";
tab.Cell(4, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][7].ToString();
//第5行赋值
tab.Cell(5, 1).Range.Text = "政治面貌:";
tab.Cell(5, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][8].ToString();
tab.Cell(5, 3).Range.Text = "单位工作时间:";
try
{
tab.Cell(5, 4).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[0][10]).ToShortDateString());
}
catch { tab.Cell(5, 4).Range.Text = ""; }
//第6行赋值
tab.Cell(6, 1).Range.Text = "籍贯:";
tab.Cell(6, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][24].ToString();
tab.Cell(6, 3).Range.Text = MyDS_Grid.Tables[0].Rows[i][25].ToString();
tab.Cell(6, 4).Range.Text = "身份证:";
tab.Cell(6, 5).Range.Text = MyDS_Grid.Tables[0].Rows[i][9].ToString();
//第7行赋值
tab.Cell(7, 1).Range.Text = "工龄:";
tab.Cell(7, 2).Range.Text = Convert.ToString(MyDS_Grid.Tables[0].Rows[i][11]);
tab.Cell(7, 3).Range.Text = "职工类别:";
tab.Cell(7, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][12].ToString();
tab.Cell(7, 5).Range.Text = "职务类别:";
tab.Cell(7, 6).Range.Text = MyDS_Grid.Tables[0].Rows[i][13].ToString();
//第8行赋值
tab.Cell(8, 1).Range.Text = "工资类别:";
tab.Cell(8, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][14].ToString();
tab.Cell(8, 3).Range.Text = "部门类别:";
tab.Cell(8, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][15].ToString();
tab.Cell(8, 5).Range.Text = "职称类别:";
tab.Cell(8, 6).Range.Text = MyDS_Grid.Tables[0].Rows[i][16].ToString();
//第9行赋值
tab.Cell(9, 1).Range.Text = "月工资:";
tab.Cell(9, 2).Range.Text = Convert.ToString(MyDS_Grid.Tables[0].Rows[i][26]);
tab.Cell(9, 3).Range.Text = "银行账号:";
tab.Cell(9, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][27].ToString();
//第10行赋值
tab.Cell(10, 1).Range.Text = "合同起始日期:";
try
{
tab.Cell(10, 2).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[i][28]).ToShortDateString());
}
catch { tab.Cell(10, 2).Range.Text = ""; }
tab.Cell(10, 3).Range.Text = "合同结束日期:";
try
{
tab.Cell(10, 4).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[i][29]).ToShortDateString());
}
catch { tab.Cell(10, 4).Range.Text = ""; }
tab.Cell(10, 5).Range.Text = "合同年限:";
tab.Cell(10, 6).Range.Text = Convert.ToString(MyDS_Grid.Tables[0].Rows[i][30]);
//第11行赋值
tab.Cell(11, 1).Range.Text = "电话:";
tab.Cell(11, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][17].ToString();
tab.Cell(11, 3).Range.Text = "手机:";
tab.Cell(11, 4).Range.Text = MyDS_Grid.Tables[0].Rows[i][18].ToString();
tab.Cell(11, 5).Range.Text = "毕业时间:";
try
{
tab.Cell(11, 6).Range.Text = Convert.ToString(Convert.ToDateTime(MyDS_Grid.Tables[0].Rows[i][21]).ToShortDateString());
}
catch { tab.Cell(11, 6).Range.Text = ""; }
//第12行赋值
tab.Cell(12, 1).Range.Text = "毕业学校:";
tab.Cell(12, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][19].ToString();
//第13行赋值
tab.Cell(13, 1).Range.Text = "主修专业:";
tab.Cell(13, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][20].ToString();
//第14行赋值
tab.Cell(14, 1).Range.Text = "家庭地址:";
tab.Cell(14, 2).Range.Text = MyDS_Grid.Tables[0].Rows[i][22].ToString();
wordDoc.Range(ref start, ref end).InsertParagraphAfter();//插入回车
wordDoc.Range(ref start, ref end).ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//设置字体居中
2012-10-23
4L
我添加了Microsoft office interop Word 12.0.0.0之后就可以通过编译了,没有错误提示 、、、、、、可是运行时在
这句代码的时候Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
提示错误:检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154
这句代码的时候Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
提示错误:检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154