最近被一个问题困扰,找不到解决办法,只能求助于网上的大虾。
c#窗体程序,按一下按钮自动读取选定文件夹下的word文档,读取里面的数据,word里面的内容很丰富,有字,有图片,表格等。。 里面只有一种规律:
标题:………………
正文:…………图片or表格………… (……代表字)
现在我要做的效果是,读取word里面的标题和正文,然后存入数据库。然后再读取出来,将它显示到两个textbox中。
现在面临的问题有如下几点:
1.读取的正文没有规律,如果将东西写入数据库后,读出来的数据是不是想word那样排版的一样,该换行的换行。
2.读出数据要考虑数据库中正文字段有图片。并且图片是夹在文字中间,而非在开头或者结尾。
3.由于数据量比较的大,要考虑读取的速度。 再这里先谢谢各位
c#窗体程序,按一下按钮自动读取选定文件夹下的word文档,读取里面的数据,word里面的内容很丰富,有字,有图片,表格等。。 里面只有一种规律:
标题:………………
正文:…………图片or表格………… (……代表字)
现在我要做的效果是,读取word里面的标题和正文,然后存入数据库。然后再读取出来,将它显示到两个textbox中。
现在面临的问题有如下几点:
1.读取的正文没有规律,如果将东西写入数据库后,读出来的数据是不是想word那样排版的一样,该换行的换行。
2.读出数据要考虑数据库中正文字段有图片。并且图片是夹在文字中间,而非在开头或者结尾。
3.由于数据量比较的大,要考虑读取的速度。 再这里先谢谢各位
解决方案 »
- 求助,帮忙转换一行java代码
- 随项目打包的.net formwork3.5安装错误
- 我想把图片变成这个样子的。请问如何实现??http://fj007.com/map/
- 如何捕获事件中的异常???
- 未能找到路径“\\局域网IP\目录”的一部分。
- 用StreamWriter和BinaryWriter写入文件为什么会不一样
- winform怎么设定起动窗口
- 一个关于ListView的笨鸟问题!
- 一个关于WINFORM更新datagrid写库问题~谢谢!
- 超时类函数如何实现
- 客户端通过xmlhttp.send(str)传给服务器端的str参数要怎么获取。 不要通过域名网址传参,和send内部变量传参。 就单独的获取一个没有变量的参数
- rdlc报表页小计
用richtextbox 就像6#说的方法 可以试试不过好像不能显示图片你可以尝试用第三方的editor控件至于保留格式 word好像能导出web版式 能够保留格式 你可以看下相关资料
2. TextBox无法显示图片。
谢谢你的回答。。 并不是您说的那个意思呢! 这么着把! 我把问题再简化一点,我事先做了一个文本读取内容的东西,后来,到了后面,发现有的内容里面有图片,txt文本不能存储图片,所以我做的那个东西就报废了,以前听人家讲过,用c#可以读取word内容,我现在的要求是,从word中读取数据和图片存入数据库中,很蛋疼,我实现了存图片的那个方法,但并不是从word中读取,而是自己手动选,又因为需求的原因,存取图片要用image类型,而文字是nvarchar类型,两者有一种插不进! 很蛋疼, 有人推荐我用ckedit试试,但这个第三方软件不支持winfrom了! 等待此时此刻的贵人出现! 呵呵
我越来越糊涂了,呵呵。你是不是想把Word文档存入数据库,然后需要的时候从数据库取出Word文档,再完整地显示在你的程序里?
2、将这段内容用以编程的方式复制到一个新建的文档中。
3、然后把这个新建的文档保存为RTF格式,并关闭此文档。
4、因为RTF是文本格式,因此可以用StreamReader读取RTF文件的所有内容,然后存到数据库中。
5、显示的时候,在窗体上放一个RichTextBox,然后把从数据库里读出来的RTV文本放进去。
谢谢你这么有建设性的回答,呵呵,因为这是一个可以解决的办法,只是没有效率而已,我已经想好办法了,反正录入的时候是工作人员录入,所以不讲究美观,我搞一个专门存图片的函数,文字也是,将读出来的文本和图片进行拆分,然后依次存储,记住,数据库中存这些内容的字段的类型用nvarchar(max),现将存储图片的代码贴出来分享,读取还在进一步开发中!
openFileDialog1.ShowDialog();
textBox1.Text = openFileDialog1.FileName;
FileStream fs = new FileStream(textBox1.Text,FileMode.Open,FileAccess.Read);
byte[] bt = new byte[fs.Length];
fs.Read(bt, 0, bt.Length);
fs.Close(); string sq1 = "insert into pictureDB values(@myimage," + bt.Length + ")";
SqlCommand com = new SqlCommand(sq1, Dbhelp.con);
SqlParameter p1 = new SqlParameter("@myimage", bt);
com.Parameters.Add(p1); Dbhelp.con.Open(); int i=(int)com.ExecuteNonQuery();
if (i > 0)
MessageBox.Show("添加成功!");
else
MessageBox.Show("添加失败!");