问题描述
将dataGridview中显示的数据导出生成EXCEL文件,已经编译成功,但是放到别的机器上使用的时候又不行,提示版本不对,有什么解决方法吗?运行的机器上已经装有excel。源程序如下:///<summary>///zjjzdq.com.cn///</summary>///<paramname="dt"></param>protectedvoidExportExcel(DataTabledt){if(dt==null||dt.Rows.Count==0)return;Microsoft.Office.Interop.Excel.ApplicationxlApp=newMicrosoft.Office.Interop.Excel.Application();if(xlApp==null){return;}System.Globalization.CultureInfoCurrentCI=System.Threading.Thread.CurrentThread.CurrentCulture;System.Threading.Thread.CurrentThread.CurrentCulture=newSystem.Globalization.CultureInfo("en-US");Microsoft.Office.Interop.Excel.Workbooksworkbooks=xlApp.Workbooks;Microsoft.Office.Interop.Excel.Workbookworkbook=workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);Microsoft.Office.Interop.Excel.Worksheetworksheet=(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];Microsoft.Office.Interop.Excel.Rangerange;longtotalCount=dt.Rows.Count;longrowRead=0;floatpercent=0;for(inti=0;i<dt.Columns.Count;i++){worksheet.Cells[1,i+1]=dt.Columns[i].ColumnName;range=(Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1,i+1];range.Interior.ColorIndex=15;range.Font.Bold=true;}for(intr=0;r<dt.Rows.Count;r++){for(inti=0;i<dt.Columns.Count;i++){worksheet.Cells[r+2,i+1]=dt.Rows[r][i].ToString();}rowRead++;percent=((float)(100*rowRead))/totalCount;}xlApp.Visible=true;}
解决方案
解决方案二:
使用流:
解决方案三:
Excel的版本问题。http://download.csdn.net/detail/qq_17486399/9471317这是一个类,兼容15到03版本的Excel包括WPS
解决方案四:
谢谢各位了,下午试试