插入数据后保存excel文件问题
我想将数据写入现有的excel文件(我很容易) 但我无法保存更改到excel文件中(实际上我看到了excel文件上的更改,但似乎打开,毕竟它发生了一些问题,如“文件已经具有相同名称的打开等等...)插入数据后保存excel文件问题
Excel.Application app= new Microsoft.Office.Interop.Excel.Application();
Excel.Workbook appbook= app.Workbooks.Open(appxls, 0, true, 5, "", "", false, Excel.XlPlatform.xlWindows, "\t", true, false, 0, true, Missing.Value, Missing.Value);
Excel.Sheets pages= appbook.Worksheets;
Excel.Worksheet page= (Excel.Worksheet)pages.get_Item(1);
// ...我改变对excel文件中的一些价值观和希望以保存它们: // appxls是持有路径的字符串
appbook.SaveAs(appxls, Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing,false, Type.Missing, Excel.XlSaveAsAccessMode.xlShared, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
appbook.Close(true, Missing.Value, Missing.Value);
app.Quit();
问题在哪里,我如何使用Microsoft.interop解决它。
您正在使用名为'appxls'的文件名作为只读打开工作簿。 (该Workbooks.Open
方法的ReadOnly
参数是第三个参数,而你传递true
。)
您以后使用Workbook.SaveAs
方法,但正在尝试使用您持相同确切的文件名“来保存文件您用来打开工作簿的'appxls'变量。这是试图覆盖已打开的只读文件,因此被阻止。
我可以看到两个可能的解决方案:
通行证在
false
的Workbooks.Open
方法的ReadOnly
参数,以便您可以稍后使用Workbook.Save
方法保存。在你的情况下,你可以通过拨打appbook.Save()
来保存。继续以只读方式打开文件,但当您稍后使用
Workbook.SaveAs
方法时,应将其保存在不同的名称下。
希望这有助于!
我试着使用OLEDB,是成功的与创建任何空的Excel文件中的代码:
OleDbConnection connection= new OleDbConnection(connectionstring);
string addSheet= "CREATE TABLE Mus(id nvarchar(255), name nvarchar(5))";
connection.Open();
OleDbCommand sqlcommand = new OleDbCommand(addSheet,connection);
sqlcommand.ExecuteNonQuery();
connection.Close();
其中ConnectionString的是:
string connectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myexcel.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
所以我有另一个proble与加插入和错误是:
“查询值和目标字段的数量不相同”
我仔细写了我的命令,我找不到错误:(我该如何解决它?
谢谢!
(这是我的工作ASPX重要的是,上面的代码工作在桌面应用程序,但对于ASPX保存位置应该像responce.outstream不同的,因为我从我的研究理解)
不成功的操作。我解决了我的问题,对不起:(我的项目在插入命令和插入的项目是不同的。 – Cmptrb 2010-04-06 00:59:50
的感谢!这是与该问题的工作: 我去保存excel文件的位置,我打开excel文件和文件冻结:( – Cmptrb 2010-04-04 15:52:02
保存也不完全工作。旧数据将被删除:( – Cmptrb 2010-04-04 16:04:09
好吧,对不起,在我原来的回答中,我错过了你以只读的方式打开文件,所以实际上有两个问题需要解决,请参阅我的更新回答,上面... – 2010-04-04 16:17:37