2/8
2、打开excel表格,点击“数据”选项卡,找到“自文本”。
小朋友语言迟缓2岁至4岁孩子不说话严重吗?
广告
3/8
3、点击“自文本”,d出下一窗口,选择刚才保存的名为“数据源”的txt类型文件,点击“导入”。因“自文本”方式数据导入默认的只有三种文件类型txt、csv、prn,所以需要事先将word转变为txt。
【家长必看】_说话晚的孩子
广告
4/8
4、d出“文本导入向导”对话框。选择最适合的文件类型,方便导入后,数据以已选择方式分列。点击“下一步”。
特别注意,如果选的“分隔符号”,则分隔符号必须是英文状态下的符号,否则导入后无法分列。
两岁小孩说话晚是什么原因?说话晚怎么办?
广告
5/8
5、设置分列数据所包含的分隔符号,其实就是导入数据列数的控制,选择分隔符。
示例文档用“,”把每列隔开的,所以选择“逗号”。
完成设定后,点击下一步。
6/8
6、列数据格式选择”常规“,”常规“选项更为智能。
完成设定后,点击完成。
7/8
7、数据存放位置最好是“现有工作表=$A$1”,指的就是从当前表格的第一行第一列开始放置数据。点击确定。
8/8
8、数据导入完成。
可以进一步编辑,或者是做几个表格的数据比对啦!
在SqlServer中存储、读写Word文件,需要将指定表字段添加为Image类型,示例表结构为:
1
CREATE
TABLE
CONTRACTS
(
2
ID
VARCHAR
(50),
3
CONTRACT_FILE
IMAGE
4
)
CONTRACT_FILE字段就是要存储Word文件的字段,在存储前,有一个小插曲,你需要将Word文件转换为byte数组,可参考以下代码实现:
1
//将文件转换为byte数组
2
public
static
byte[]
File2Bytes(string
fileName)
3
{
4
FileStream
fs
=
new
FileStream(fileName,FileMode.OpenOrCreate,
FileAccess.Read)
5
byte[]
fileDatas
=
new
byte[fs.Length]
6
fs.Read(fileDatas,
0,
System.Convert.ToInt32(fs.Length))
7
fs.Close()
8
return
fileDatas
9
}
接下来就是将转换后的byte[]数组存储到SqlServer的对应字段中,具体实现代码可看如下代码段:
01
//将文件存储到数据库
02
public
bool
UpdateContractFile(string
id,
byte[]
fileBytes)
03
{
04
string
sql
=
"UPDATE
CONTRACTS
SET
CONTRACT_FILE=@CONTRACT_FILE
WHERE
ID=@ID"
05
using
(SqlConnection
conn
=
new
SqlConnection(this.m_DataAccess.ConnectString))
06
{
07
conn.Open()
08
using
(SqlCommand
cmd
=
new
SqlCommand())
09
{
10
cmd.Connection
=
conn
11
cmd.CommandText
=
sql
12
cmd.Parameters.Clear()
13
cmd.Parameters.Add(new
SqlParameter("@CONTRACT_FILE",
SqlDbType.Image))
14
cmd.Parameters["@CONTRACT_FILE"].Value
=
fileBytes
15
cmd.Parameters.Add(new
SqlParameter("@ID",
SqlDbType.VarChar))
16
cmd.Parameters["@ID"].Value
=
id
17
return
cmd.ExecuteNonQuery()
>
0
?
true
:
false
18
}
19
}
20
}
同时,因之前转换了数据类型,所以从数据库中读取Word文件时,要先将Image类型的字段转换为bytes[],代码如下:
01
//通过ID获取文件byte数组
02
public
byte[]
GetContractFile(string
id)
03
{
04
string
sql
=
"SELECT
CONTRACT_FILE
FROM
CONTRACTS
WHERE
ID='{0}'"
05
sql
=
string.Format(sql,
id)
06
object
contractFile
07
contractFile
=
this.m_DataAccess.ExecuteScalar(sql)
08
if
(contractFile
==
null)
09
{
10
return
new
byte[0]
11
}
12
else
13
{
14
return
(byte[])contractFile
15
}
16
}
在获取到文件的byte[]后,将该文件再通过文件流存储为Word文件,以下代码可实现此功能:
01
//将byte[]数组存储为Word文件
02
byte[]
fileBytes
=
this.m_ContractsBusiness.GetContractFile(id)
03
if
(fileBytes.Length
==
0)
04
{
05
XMessageBox.ShowError("未找到合同文件!")
06
return
07
}
08
SaveFileDialog
sfd
=
new
SaveFileDialog()
09
sfd.Filter
=
"Word文件(*.doc)|*.doc"
10
if
(sfd.ShowDialog()
==
System.Windows.Forms.DialogResult.OK)
11
{
12
try
13
{
14
string
saveFileName
=
sfd.FileName
15
int
arraysize
=
new
int()
16
arraysize
=
fileBytes.GetUpperBound(0)
17
FileStream
fs
=
new
FileStream(saveFileName,
FileMode.OpenOrCreate,
FileAccess.Write)
18
fs.Write(fileBytes,
0,
arraysize)
19
fs.Close()
20
if
(XMessageBox.ShowQuestion("文件存储成功,是否立即打开文件?")
==
21
System.Windows.Forms.DialogResult.Yes)
22
{
23
Process.Start(saveFileName)
24
}
25
}
26
catch
(Exception
ex)
27
{
28
XMessageBox.ShowError(" *** 作失败!")
29
}
上面的几段代码只是核心代码,并不是完整的代码段,用时候要看清,自己再修改下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)