其实我就是想把Word中的内容存到数据库里,而Word的内容是一些习题的答案。比如:Word文件内容
1.D
2.C
3.B
4.图片一张
5.质量
6.长度
7.图片一张现在我就想把这些内容入库
ID     题号   答案
1001    1      D
1002    2      C
1003    3      B
1004    4      图片路径D:/picture/xxx1.jpg
1005    5      质量
1006    6      长度
1007    7      图片路径D/picture/xxx2.jpg
Word中的内容是图文混编的。我想先把Word的内容转成TXT的,可是转了以后,图片就没有了。
有没有什么工具或者什么方法能将Word转成TXT 并且图片变成路径。我尝试了把Word文件另存为HTML,可是这样虽然图片路径是有了,但是又多了很多的HTML代码
我又尝试了把Word文件另存为TXT,可是这样虽然是文本了,但是图片没了。。哪位高手有解决的方法?虚心求教。

解决方案 »

  1.   

    你存word的时候用一个第三方控件吧,像freetextbox    可以直接把你的word内容贴在里面,然后他会自动把内容保存成html标签和text存到数据库中
      

  2.   

    如何在数据库中存储Word文件以后 最好 搜下 再提问
      

  3.   

    为何要用WORD?将格式一样的写成一相EXCLE
    利用FileUpload先获取EXCEL
    然后读取EXCEL内的内容 
    将图片转化成二进制存入数据库 不就OK 了?
    参考:
    if (FileUpload.HasFile)
                    {
                        string strFileName = Request.Files[0].FileName;
                        Random ran = new Random();
                        if (strFileName.Substring(strFileName.Length - 3, 3).ToUpper() != "XLS")
                        {
                            Alert("选择的文件格式不正确,请使用xls格式文件!");
                            return;
                        }
                        strFileName = System.Web.HttpContext.Current.Request.MapPath("upload/") + DateTime.Now.ToString(@"yyyyMMddHHmmss") + ran.Next(100, 999).ToString() + ".xls";
                        Request.Files[0].SaveAs(strFileName);
                        int iQuestionSortID = -1;                   
                        string strQuestionType = "";                                      //题目类型
                        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFileName + ";Extended Properties=Excel 8.0;";
                        System.Data.OleDb.OleDbConnection tmpcn = new System.Data.OleDb.OleDbConnection(strConn);
                        tmpcn.Open();
                        try
                        {
                            QuestionBL blQuestion = new QuestionBL();
                            DataTable dt = tmpcn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                            foreach (DataRow drr in dt.Rows)
                            {
                                string strExcelTableName = drr["TABLE_NAME"].ToString();      //EXCEL中的工作表名
                                if (strExcelTableName != "Sheet1$_")
                                {
                                    System.Data.OleDb.OleDbDataAdapter tmpda = new System.Data.OleDb.OleDbDataAdapter("select * from [" + strExcelTableName + "]", tmpcn);
                                    System.Data.DataSet ds = new DataSet();
                                    tmpda.Fill(ds);
                                    bool flag = true;
                                    if (ds.Tables[0].Columns.Count >= 4)
                                    {
                                        if (ds.Tables[0].Columns[0].ColumnName.Trim() != "题型")
                                        {
                                            flag = false;
                                        }
                                        if (ds.Tables[0].Columns[1].ColumnName.Trim() != "题干、答案")
                                        {
                                            flag = false;
                                        }
                                        if (ds.Tables[0].Columns[1].DataType.FullName != "System.String")
                                        {
                                            flag = false;
                                        }
                                        if (ds.Tables[0].Columns[2].ColumnName.Trim() != "正确答案")
                                        {
                                            flag = false;
                                        }                                    if (ds.Tables[0].Columns[3].ColumnName.Trim() != "难度")
                                        {
                                            flag = false;
                                        }                                }
                                    else
                                    {
                                        flag = false;
                                    }
                                    ds.Tables[0].Rows.RemoveAt(0);                                if (flag)
                                    {                                    ArrayList arr = IsExcelRight(ds.Tables[0]);
                                        arr.Sort(new ArralListSort());
                                        if (arr.Count > 0)
                                        {
                                            ArrayList arrList = new ArrayList();                                        for (int i = 0; i < arr.Count; i++)
                                            {
                                                if (!arrList.Contains(arr[i]))
                                                {
                                                    arrList.Add(arr[i]);
                                                }
                                            }
                                            string strRowIndex = "";
                                            for (int i = 0; i < arrList.Count; i++)
                                            {
                                                strRowIndex += arrList[i].ToString() + ",";
                                            }
                                            strRowIndex = strRowIndex.Substring(0, strRowIndex.Length - 1);
                                            Alert("第" + strRowIndex + "行所在的试题有误,请先检查");
                                            break;
                                        }
                                        tbQuestions ql = new tbQuestions();
                                        IList<QuestionOptionInfo> optList = new List<QuestionOptionInfo>();
                                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                                        {
                                            if (ds.Tables[0].Rows[i][0].ToString() == "")
                                            {
                                                if (ds.Tables[0].Rows[i][1].ToString() != "")                            //保存答案
                                                {
                                                    QuestionOptionInfo info = new QuestionOptionInfo();
                                                    info.Content = ds.Tables[0].Rows[i][1].ToString().Trim();
                                                    info.IsAnswer = (ds.Tables[0].Rows[i][2].ToString() == "" || ds.Tables[0].Rows[i][2].ToString() == "否") ? 0 : 1;
                                                    optList.Add(info);
                                                }                                        }
                                            else                                                    //保存题干
                                            {
                                                if (ds.Tables[0].Rows[i][0].ToString() != "" && ds.Tables[0].Rows[i][1].ToString() != "" && ds.Tables[0].Rows[i][3].ToString() != "")
                                                {
                                                    strQuestionType = ds.Tables[0].Rows[i][0].ToString();
                                                    ql.content = ds.Tables[0].Rows[i][1].ToString().Trim();
                                                    ql.type = ds.Tables[0].Rows[i][0].ToString().Trim() == "单选题" ? 1 : ds.Tables[0].Rows[i][0].ToString() == "多选题" ? 2 : 0;
                                                    ql.degreeOfDifficulty = ds.Tables[0].Rows[i][3].ToString().Trim();
                                                    ql.bankID = iQuestionSortID;                                            }
                                            }
                                            try
                                            {
                                                if (ds.Tables[0].Rows[i + 1][0].ToString() != "")
                                                {
                                                    blQuestion.AddQuestion(ql, optList);
                                                    ql = new tbQuestions();
                                                    optList = new List<QuestionOptionInfo>();
                                                }
                                            }
                                            catch
                                            {
                                                blQuestion.AddQuestion(ql, optList);
                                            }
                                        }                                }
                                    else
                                    {
                                        Alert("导入试题模板有误,请检查!");
                                        break;
                                    }
                                }
                            
                                QuestionInit();
                            }
                        }
                        catch
                        {                    }
                        finally
                        {
                            tmpcn.Close();
                            DeleteFile(strFileName);
                        }
                    }
                    else
                    {
                        Alert("请选择要导入的文件!");
                    }
      

  4.   

    如何在数据库中存储Word文件以后 最好 搜下 再提问
    [/Quote]问题是我想只存图片的路径,不存图的内容
      

  5.   


    private void DeleteFile(string strFileName)
        {
            try
            {
                if (!string.IsNullOrEmpty(strFileName))
                {
                    FileInfo fi = new FileInfo(strFileName);
                    fi.Delete();
                }
            }
            catch
            {
            }
        }
      

  6.   


    因为人家给的文档就是WORD的,而且不是一个,是几千个WORD文档,如果是一个WORD文档,我手动也把他导入库了,现在的问题就是我要做一个程序,将这个Word文档的内容自动入库,现在只能实现文字内容的,可是图片的就不好办了,所以我想把这个Word文档转成TXT的,可是图片就没了
      

  7.   

    你把word当html了
    word插入图片 本身就是把图片源文件 包含到.doc文件内  
    你只存 图片路径 那就不是word文件了 
    你想存html文件吧 
    word,html格式互转换
      

  8.   


    WORD转成HTML后会多出好多的HTML标签,我用好多种方法,就是过滤不干净。
      

  9.   

    这个问题我问过  没人解释的清楚,估计word2007差不多能行!2003的够呛!还有人家问word导入,给人家说什么EXCEL,ca,不会就说不会的,你咋不说用ACCESS呢?
      

  10.   

    得到选择的RTF数据,然后把RTF数据放到数据库中去,至于怎么得到RTF数据,楼主得多发点时间去研究下.公司的秘密,不好透露,请见凉
      

  11.   

    会过滤不干净?应该可以啊,先把文本加到数据库,然后转换成HTML,再单个把图片存入数据库
      

  12.   

    读word本来就麻烦。我记得我做的时候 要引用COM还要配置权限。 弄了好几个小时。 
    从来就没想过还要读图片。 留个名看最后怎么处理的
      

  13.   

    想了一天,还是没有什么好的办法。
    因为要把一些试题的答案录入数据库,页面上做查询处理,原来都是语文数学什么的,答案的格式固定,都是一个题号+一个答案(答案都是字符串的),我直接转成TXT,然后就入库了现在多了好多物理和化学的题,出现了大量的图片还有各种符号,都是用图片来显示的。。结果现在就出现这个问题了转成TXT图没了。。现在就想把Word文档转成TXT的,字符串保持不变。图片变成一个路径
      

  14.   


    至少我给人家提供了一个解决思路就你说的那些,等于没说! ca 你怎么不说用wps?