2。动态修改存入的Excel文件
急,在线等
20 个解决方案
#1
up
#2
直接保存成流文件就行拉。
#3
up
#4
将方法的返回值存入数据库
public static byte[] GetBinary(string fileName)
{
FileInfo fi = new FileInfo(fileName);
FileStream fs = fi.OpenRead();
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
fs.Close();
return bytes;
}
#5
那么第二个问题怎么解决
#6
private void button_添加数据文件_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();//创建OpenFileDialog实例
open.Filter = "Excel文件|*.xls";
open.Multiselect = false; //每次只能选择一个文件
if (open.ShowDialog() == DialogResult.OK)
{
string fullpath = open.FileName; //文件路径
FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
//把fullpath路径下的文件以打开、只读方式读入流
Wordbytes1 = new byte[fs.Length];//字节数组的大小等于流的长度
fs.Read(Wordbytes1, 0, System.Convert.ToInt32(fs.Length));//从流中读取全部字节,并将其写入字节数组
}
还有不太明白你第二个问题的意思!
#7
第二个问题是第一个的逆向吗?从数据库中取出字段,记录主键,并且把excel所在字段写入文件,然后修改并更新数据?楼主考虑下把文件以二进制方式存入数据库是否必要,如果要经常性对文件进行修改,那么只保存文件的路径更符合应用,毕竟只涉及到io操作。
#8
第二个问题是指:当通过读取数据库字节流方式将Excel文件显示给用户时,如若用户修改,如何来保存
#9
谢谢你的善意提醒,这样作可以隐藏excel文件的存在
#10
大家帮忙看看
#11
up
#12
第一次保存时有一个Excel文件的模板
第二次保存没有Excel文件存在,显示给用户Excel文件从数据库中读取的
第二次保存没有Excel文件存在,显示给用户Excel文件从数据库中读取的
#13
直接导入建表就好了。搞这么麻烦干嘛。
#14
直接到处建表,那么有100个甚至更多Excel模板,岂不是要建那么多表?
#15
up
#16
不会,顶起
#17
我以前再一个项目中做过:
先是把execel中的数据 掉入C#Winfrom中的dataGridview中。
然后把再遍历数据导入到sql2000中。
先是把execel中的数据 掉入C#Winfrom中的dataGridview中。
然后把再遍历数据导入到sql2000中。
#18
再次顶
#19
ding
#20
换个思路吧,使用office2003以上版本,sql2005以上版本,都支持xml的,将Excel文件导出为xml保存入数据库字段,读取时就可以用dataset.readxml方法得到数据,用GridView显示并修改,完了再更新数据库。
#21
#1
up
#2
直接保存成流文件就行拉。
#3
up
#4
将方法的返回值存入数据库
public static byte[] GetBinary(string fileName)
{
FileInfo fi = new FileInfo(fileName);
FileStream fs = fi.OpenRead();
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
fs.Close();
return bytes;
}
#5
那么第二个问题怎么解决
#6
private void button_添加数据文件_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();//创建OpenFileDialog实例
open.Filter = "Excel文件|*.xls";
open.Multiselect = false; //每次只能选择一个文件
if (open.ShowDialog() == DialogResult.OK)
{
string fullpath = open.FileName; //文件路径
FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
//把fullpath路径下的文件以打开、只读方式读入流
Wordbytes1 = new byte[fs.Length];//字节数组的大小等于流的长度
fs.Read(Wordbytes1, 0, System.Convert.ToInt32(fs.Length));//从流中读取全部字节,并将其写入字节数组
}
还有不太明白你第二个问题的意思!
#7
第二个问题是第一个的逆向吗?从数据库中取出字段,记录主键,并且把excel所在字段写入文件,然后修改并更新数据?楼主考虑下把文件以二进制方式存入数据库是否必要,如果要经常性对文件进行修改,那么只保存文件的路径更符合应用,毕竟只涉及到io操作。
#8
第二个问题是指:当通过读取数据库字节流方式将Excel文件显示给用户时,如若用户修改,如何来保存
#9
谢谢你的善意提醒,这样作可以隐藏excel文件的存在
#10
大家帮忙看看
#11
up
#12
第一次保存时有一个Excel文件的模板
第二次保存没有Excel文件存在,显示给用户Excel文件从数据库中读取的
第二次保存没有Excel文件存在,显示给用户Excel文件从数据库中读取的
#13
直接导入建表就好了。搞这么麻烦干嘛。
#14
直接到处建表,那么有100个甚至更多Excel模板,岂不是要建那么多表?
#15
up
#16
不会,顶起
#17
我以前再一个项目中做过:
先是把execel中的数据 掉入C#Winfrom中的dataGridview中。
然后把再遍历数据导入到sql2000中。
先是把execel中的数据 掉入C#Winfrom中的dataGridview中。
然后把再遍历数据导入到sql2000中。
#18
再次顶
#19
ding
#20
换个思路吧,使用office2003以上版本,sql2005以上版本,都支持xml的,将Excel文件导出为xml保存入数据库字段,读取时就可以用dataset.readxml方法得到数据,用GridView显示并修改,完了再更新数据库。