protected void CreateExcel()
{
Excel.Application oExcel;
Excel.Workbook oBook;
VBIDE.VBComponent oModule;
Office.CommandBar oCommandBar;
Office.CommandBarButton oCommandBarButton;
String sCode;
Object oMissing = System.Reflection.Missing.Value;
oExcel = new Excel.Application();
oBook = oExcel.Workbooks.Add(oMissing);
oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);
sCode =
"sub VBAMacro()" +
" msgbox \"VBA Macro called\"\r\n" +
"end sub";
// Add the VBA macro to the new code module.
oModule.CodeModule.AddFromString(sCode);
//这块不知道如何将oExcel 对象转换为二进制。我是想将这个动态创建的对象以二进制格式写入到数据库中,请高手们指教,谢谢!
}
11 个解决方案
#1
看是什么数据库?
Oracle中有Blob/Clob字段,可以直接存
Oracle中有Blob/Clob字段,可以直接存
#2
是SQL|SERVER ,Image类型
#3
怎样获取Excel对象的二进制内容?
#4
FileStream
#5
可以用代码描述吗?
#6
有没有高手啊?
#7
FileStream直接读excle文件,以二进制形式往数据库里写
#8
//读文件
FileStream FS= File.Open (FilePathName,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
byte []BUF=new byte [0x10000];
FS.Read (BUF,0,BUF.Length);
FS.Close ();
//插入数据
adapter.Fill(myDataSet,"myDataSet");
//插入新行
DataRow anyRow = myDataTable.NewRow();
anyRow[0] = BUF;
myDataTable.Rows.Add(anyRow);
FileStream FS= File.Open (FilePathName,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
byte []BUF=new byte [0x10000];
FS.Read (BUF,0,BUF.Length);
FS.Close ();
//插入数据
adapter.Fill(myDataSet,"myDataSet");
//插入新行
DataRow anyRow = myDataTable.NewRow();
anyRow[0] = BUF;
myDataTable.Rows.Add(anyRow);
#9
可能我描述的还不够详细,我是动态创建一个Excel文件,并动态的写入宏信息,如:
sCode =
"sub VBAMacro()" +
" msgbox \"VBA Macro called\"\r\n" +
"end sub";
// Add the VBA macro to the new code module.
oModule.CodeModule.AddFromString(sCode);
然后将动态创建的这个Excel文件,也就是Excel.Application oExcel中的oExcel对象转为二进制格式,并保存到数据库中。
因为要动态的向Excel写入宏,所以才用程序来创建Excel文件,而并不是读取本地Excel文件。
我现在不太清楚如何将动态创建的这个Excel文件转化为二进制数据,有没有什么方法?
sCode =
"sub VBAMacro()" +
" msgbox \"VBA Macro called\"\r\n" +
"end sub";
// Add the VBA macro to the new code module.
oModule.CodeModule.AddFromString(sCode);
然后将动态创建的这个Excel文件,也就是Excel.Application oExcel中的oExcel对象转为二进制格式,并保存到数据库中。
因为要动态的向Excel写入宏,所以才用程序来创建Excel文件,而并不是读取本地Excel文件。
我现在不太清楚如何将动态创建的这个Excel文件转化为二进制数据,有没有什么方法?
#10
当然可以先将Excel保存到本地或服务端,然后再用下面的方式打开。
FileStream FS= File.Open (FilePathName,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
这样不是多一道手续么?能不能直接转换呢?
FileStream FS= File.Open (FilePathName,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
这样不是多一道手续么?能不能直接转换呢?
#11
到底这样有没有实现的可能?怎么没人回答
#1
看是什么数据库?
Oracle中有Blob/Clob字段,可以直接存
Oracle中有Blob/Clob字段,可以直接存
#2
是SQL|SERVER ,Image类型
#3
怎样获取Excel对象的二进制内容?
#4
FileStream
#5
可以用代码描述吗?
#6
有没有高手啊?
#7
FileStream直接读excle文件,以二进制形式往数据库里写
#8
//读文件
FileStream FS= File.Open (FilePathName,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
byte []BUF=new byte [0x10000];
FS.Read (BUF,0,BUF.Length);
FS.Close ();
//插入数据
adapter.Fill(myDataSet,"myDataSet");
//插入新行
DataRow anyRow = myDataTable.NewRow();
anyRow[0] = BUF;
myDataTable.Rows.Add(anyRow);
FileStream FS= File.Open (FilePathName,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
byte []BUF=new byte [0x10000];
FS.Read (BUF,0,BUF.Length);
FS.Close ();
//插入数据
adapter.Fill(myDataSet,"myDataSet");
//插入新行
DataRow anyRow = myDataTable.NewRow();
anyRow[0] = BUF;
myDataTable.Rows.Add(anyRow);
#9
可能我描述的还不够详细,我是动态创建一个Excel文件,并动态的写入宏信息,如:
sCode =
"sub VBAMacro()" +
" msgbox \"VBA Macro called\"\r\n" +
"end sub";
// Add the VBA macro to the new code module.
oModule.CodeModule.AddFromString(sCode);
然后将动态创建的这个Excel文件,也就是Excel.Application oExcel中的oExcel对象转为二进制格式,并保存到数据库中。
因为要动态的向Excel写入宏,所以才用程序来创建Excel文件,而并不是读取本地Excel文件。
我现在不太清楚如何将动态创建的这个Excel文件转化为二进制数据,有没有什么方法?
sCode =
"sub VBAMacro()" +
" msgbox \"VBA Macro called\"\r\n" +
"end sub";
// Add the VBA macro to the new code module.
oModule.CodeModule.AddFromString(sCode);
然后将动态创建的这个Excel文件,也就是Excel.Application oExcel中的oExcel对象转为二进制格式,并保存到数据库中。
因为要动态的向Excel写入宏,所以才用程序来创建Excel文件,而并不是读取本地Excel文件。
我现在不太清楚如何将动态创建的这个Excel文件转化为二进制数据,有没有什么方法?
#10
当然可以先将Excel保存到本地或服务端,然后再用下面的方式打开。
FileStream FS= File.Open (FilePathName,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
这样不是多一道手续么?能不能直接转换呢?
FileStream FS= File.Open (FilePathName,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);
这样不是多一道手续么?能不能直接转换呢?
#11
到底这样有没有实现的可能?怎么没人回答