其实我就是想把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.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,可是这样虽然是文本了,但是图片没了。。哪位高手有解决的方法?虚心求教。
利用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("请选择要导入的文件!");
}
[/Quote]问题是我想只存图片的路径,不存图的内容
private void DeleteFile(string strFileName)
{
try
{
if (!string.IsNullOrEmpty(strFileName))
{
FileInfo fi = new FileInfo(strFileName);
fi.Delete();
}
}
catch
{
}
}
因为人家给的文档就是WORD的,而且不是一个,是几千个WORD文档,如果是一个WORD文档,我手动也把他导入库了,现在的问题就是我要做一个程序,将这个Word文档的内容自动入库,现在只能实现文字内容的,可是图片的就不好办了,所以我想把这个Word文档转成TXT的,可是图片就没了
word插入图片 本身就是把图片源文件 包含到.doc文件内
你只存 图片路径 那就不是word文件了
你想存html文件吧
word,html格式互转换
WORD转成HTML后会多出好多的HTML标签,我用好多种方法,就是过滤不干净。
从来就没想过还要读图片。 留个名看最后怎么处理的
因为要把一些试题的答案录入数据库,页面上做查询处理,原来都是语文数学什么的,答案的格式固定,都是一个题号+一个答案(答案都是字符串的),我直接转成TXT,然后就入库了现在多了好多物理和化学的题,出现了大量的图片还有各种符号,都是用图片来显示的。。结果现在就出现这个问题了转成TXT图没了。。现在就想把Word文档转成TXT的,字符串保持不变。图片变成一个路径
至少我给人家提供了一个解决思路就你说的那些,等于没说! ca 你怎么不说用wps?