在我的C#应用程序中,我将数据导入并导出到excel。我还有2013年的办公室。
我使用以下代码:
using Excel = Microsoft.Office.Interop.Excel;
Excel.Application _excelApp = null;
_excelApp = new Excel.Application();这段代码运行良好,但最近我安装了2013,它还更新了office。在此之后,我得到了_excelApp =新的Excel.Application()中的错误;
错误是:
无法将'System.__ComObject‘类型的COM对象转换为接口类型'Microsoft.Office.Interop.Excel.Application’。此操作失败,因为对IID“{000208D5-0000-C000-000000000046}”接口的COM组件的QueryInterface调用由于以下错误而失败:错误加载类型库/DLL。(HRESULT除外: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))。
发布于 2015-05-18 13:23:46
@Deepak,我不能发表评论,所以我把它放在这里。也许索纳是对的。我以前也有同样的问题,所以我决定使用旧的方式打开Excel文件(使用oledb命令)。
请问你需要什么?读Excel还是保存新的Excel?
例如,在我的例子中,我需要读取一个Excel (即和.xls或.xlsx):
//Check whether file extension is xls or xslx
if (fileExtension == ".xls")
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
else if (fileExtension == ".xlsx")
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
//Create OleDB Connection and OleDb Command
OleDbCommand cmd = new OleDbCommand();
OleDbConnection con = new OleDbConnection(connectionString);
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = con;
OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd);
con.Open();
DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString();
//send query, send query, fill adapter:
cmd.CommandText = "SELECT * FROM [" + getExcelSheetName + "A1:GR255] WHERE [0] IS NOT NULL ";
dAdapter.SelectCommand = cmd;
dAdapter.Fill(dtExcelRecords);
con.Close();或者您可以尝试使用这个库ExcelLibrary,这是在本文Create Excel (.XLS and .XLSX) file from C#中描述的。
发布于 2015-06-15 11:13:58
--这是创建对象的方法,从而将工作表从一个excel复制到另一个
Dim CopyFrom作为对象Dim CopyTo作为对象Dim CopyThis作为对象Dim xl
xl = CreateObject("Excel.Application")
xl.Visible = False
CopyFrom = xl.Workbooks.Open("E:\EXCEL\From.xls")
CopyTo = xl.Workbooks.Open("E:\EXCEL\To.xls")
For i = 0 To 1
''To use a password: Workbooks.Open Filename:="Filename", Password:="Password"
If i = 0 Then
CopyThis = CopyFrom.Sheets(1)
CopyThis.Copy(After:=CopyTo.Sheets(CopyTo.Sheets.Count))
CopyTo.Sheets(3).Name = "Sheet3"
Else
CopyThis = CopyFrom.Sheets(2)
CopyThis.Copy(After:=CopyTo.Sheets(CopyTo.Sheets.Count))
CopyTo.Sheets(4).Name = "Sheet4"
End If
Next
CopyTo.Sheets(1).Activate()
CopyTo.Save()
'CopyTo.SaveAs("E:\EXCEL\Check.xls")
xl.Quit()发布于 2015-10-16 08:35:50
问题已经解决了。当我安装微软项目专业2013,它也更新微软办公室,但升级的办公室是不成功的。
当我修理办公室的时候,它开始正常工作了。
https://stackoverflow.com/questions/30302351
复制相似问题