c# 调用Excel
c# 中调用Excel 的版本兼容的问题,现在无法判断客户使用时安装的office 的版本啊,在程序中如何来实现版本的兼容;调用 Excel必须要按钮office 吗 --------------------编程问答-------------------- 必须要安装office。
在调用的时候可以判断一下,把03跟07的版本都写上去。用try catch。 --------------------编程问答-------------------- 可以不用裝Office的
用ADO直接去操作 --------------------编程问答-------------------- ADO直接操作,能不能说详细点啊 --------------------编程问答-------------------- 使用低版本的COM组件操作是可以兼容的
--------------------编程问答-------------------- 能不能详细点啊
低版本可以兼容高版本吗 --------------------编程问答-------------------- 我原来用VB操作EXCEL时遇到过这样的问题,我是这样解决的,将所有变量的声明改成Object,再把需要用到的各种版本的excel库文件添加到引用中。OK!C#我没用过,不知道可以用同样的处理方法。你可以试试。下面是我的VB源码,方便你理解。
'Dim TempApp As Application
'Dim Exwbook As Excel.Workbook
'Dim Exsheet As Excel.Worksheet
Dim TempApp As Object
Dim Exwbook As Object
Dim Exsheet As Object
Set TempApp = CreateObject("Excel.application")
If TempApp Is Nothing Then MsgBox "请检查是否安装Microsoft Excell软件", vbExclamation, "问题": Exit Sub
Set Exwbook = TempApp.Workbooks.Add
Set Exsheet = Exwbook.Worksheets(1) --------------------编程问答-------------------- 上面一点说错了,我只引用了一个2000版本的Excel库,它及其以上版本都可以用了。 --------------------编程问答-------------------- 谢了,我可以试一试 --------------------编程问答-------------------- 第三方的类库,这样就不需要excel了。
可以试试这个Koogra --------------------编程问答-------------------- OleDbConnection myOleConn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; data source=" + strFileName + "; Extended Properties='Excel 8.0;PersistSecurityInfo=False;HDR=YES;IMEX=no'");
myOleConn.Open();
string sql = "select [字段1] , [字段2] ,[字段3] from [sheet1$]";
OleDbDataAdapter MyCommand = new System.Data.OleDb.OleDbDataAdapter(sql, myOleConn);
DataSet ds = new System.Data.DataSet();
MyCommand.Fill(ds);
myOleConn.Close();
return ds.Tables[0]; --------------------编程问答-------------------- --------------------编程问答-------------------- 用低版本的,高版本可以兼容低的 --------------------编程问答-------------------- 将DataGridView控件中数据导出到Excel函数
/// <summary>
/// 将DataGridView控件中数据导出到Excel
/// </summary>
/// <param name="gridView">DataGridView对象</param>
/// <param name="isShowExcle">是否显示Excel界面</param>
/// <returns></returns>
public bool ExportDataGridview(DataGridView gridView,bool isShowExcle)
{
if (gridView.Rows.Count == 0)
return false;
//建立Excel对象
Excel.Application excel = new Excel.Application();
excel.Application.Workbooks.Add(true);
excel.Visible = isShowExcle;
//生成字段名称
for (int i = 0; i < gridView.ColumnCount; i++)
{
excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText;
}
//填充数据
for (int i = 0; i < gridView.RowCount-1; i++)
{
for (int j = 0; j < gridView.ColumnCount; j++)
{
if (gridView[j, i].ValueType == typeof(string))
{
excel.Cells[i + 2, j + 1] = "'" + gridView[j, i].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = gridView[j, i].Value.ToString();
}
}
}
return true;
}
然后调用此函数就行了!
补充:.NET技术 , C#