问题描述
数据一共99880条导了21分钟,这要是远程连接还不死翘。哪位大侠知道有什么方法可以优化速度吗??55555在线等啦~~~可以提高赠送分数哦o(∩_∩)o...
解决方案
解决方案二:
对了,我是导在两个工作表里面的。因为我用的03一个表好像放不下。
解决方案三:
怎么么人!_!
解决方案四:
方法不对!
解决方案五:
文本流输出,加上换行标记
解决方案六:
liujiayu10..我也有考虑过文本流但是格式不太会调导出来后很不好看。能告诉我格式怎么调整吗?例如列宽怎么设定??谢谢啦
解决方案七:
关注,我最近也在做这方面的
解决方案八:
先做好模板,把Excel数据读成二维数组,再放进数据单元格。
解决方案九:
支持楼上的,弄成个二维数组,然后好象有个rang.setvalue(数组)这样的属性
解决方案十:
还有一个问题,如果你是从页面中的gridview等类似控件中导出数据的话,如果其中有超链接或者linkbutton等,会大大增加导出时间,去掉他们试试
解决方案十一:
NickLee.Commom.ExcelLite可以直接导出,速度比MS的ExcelActivex快100多倍http://www.cnblogs.com/mail-ricklee这里可以找到下载包,而且免费
解决方案十二:
你想要带格式,那就只能用模板,这样肯定就慢
解决方案十三:
楼主代码写得有问题我记得我用vb.net写的,20多万数据导到excel中的四个表以上表也用不了你那么多时间
解决方案十四:
PublicSubDtToXls(ByValTableAsDataTable,ByValDefFileNameAsString)DimMyOleDbCnAsNewSystem.Data.OleDb.OleDbConnectionDimMyOleDbCmdAsNewSystem.Data.OleDb.OleDbCommandDimMyTableAsNewDataTableDimintRowsCnt,intColsCntAsIntegerDimstrSqlAsString,strFlNameAsStringDimFsoAsNewSystem.ObjectIfTableIsNothingThenMessageBox.Show("未取得數據,無法導出","導出錯誤",MessageBoxButtons.OK,MessageBoxIcon.Error)ExitSubEndIfMyTable=TableIfMyTable.Rows.Count=0ThenMessageBox.Show("未取得數據,無法導出","導出錯誤",MessageBoxButtons.OK,MessageBoxIcon.Error)ExitSubEndIfDimFileNameAsStringDimSaveFileDialogAsNewSaveFileDialogSaveFileDialog.InitialDirectory=My.Computer.FileSystem.SpecialDirectories.MyDocumentsSaveFileDialog.Title="保存為"SaveFileDialog.Filter=".xls|*.xls"SaveFileDialog.FileName=DefFileNameIf(SaveFileDialog.ShowDialog()=System.Windows.Forms.DialogResult.OK)ThenFileName=SaveFileDialog.FileName'TODO:在此加入開啟檔案的程式碼。EndIfIfFileName=""ThenExitSubstrFlName=FileNameIfDir(FileName)<>""ThenKill(FileName)EndIfTryWindows.Forms.Cursor.Current=System.Windows.Forms.Cursors.WaitCursorMyOleDbCn.ConnectionString="Provider=Microsoft.Jet.OleDb.4.0;"&_"DataSource="&strFlName&";"&_"ExtendedProPerties=""Excel8.0;HDR=Yes;"""MyOleDbCn.Open()MyOleDbCmd.Connection=MyOleDbCnMyOleDbCmd.CommandType=CommandType.Text'第一行插入列标题strSql="CREATETABLE"&DefFileName&"("ForintColsCnt=0ToMyTable.Columns.Count-1IfintColsCnt<>MyTable.Columns.Count-1ThenstrSql=strSql&ChangeChar(MyTable.Columns(intColsCnt).Caption)&"text,"ElsestrSql=strSql&ChangeChar(MyTable.Columns(intColsCnt).Caption)&"text)"EndIfNextMyOleDbCmd.CommandText=strSqlMyOleDbCmd.ExecuteNonQuery()'插入各行ForintRowsCnt=0ToMyTable.Rows.Count-1strSql="INSERTINTO"&DefFileName&"VALUES('"ForintColsCnt=0ToMyTable.Columns.Count-1IfintColsCnt<>MyTable.Columns.Count-1ThenstrSql=strSql&ChangeChar(MyTable.Rows(intRowsCnt).Item(intColsCnt))&"','"ElsestrSql=strSql&ChangeChar(MyTable.Rows(intRowsCnt).Item(intColsCnt))&"')"EndIfNextMyOleDbCmd.CommandText=strSqlMyOleDbCmd.ExecuteNonQuery()NextMessageBox.Show("数据已经成功导入EXCEL文件"&strFlName,"数据导出",MessageBoxButtons.OK,MessageBoxIcon.Information)CatchErrCodeAsExceptionMsgBox("错误信息:"&ErrCode.Message&vbCrLf&vbCrLf&_"引发事件:"&ErrCode.TargetSite.ToString,MsgBoxStyle.OkOnly+MsgBoxStyle.Information,"错误来源:"&ErrCode.Source)ExitSubFinallyMyOleDbCmd.Dispose()MyOleDbCn.Close()MyOleDbCn.Dispose()'Me.Cursor.Current=System.Windows.Forms.Cursors.DefaultEndTryEndSubPublicFunctionChangeChar(ByValSqlchar)AsStringIfConvert.IsDBNull(Sqlchar)ThenChangeChar=""ExitFunctionEndIfDimtStrAsStringtStr=Replace(Sqlchar,"'",Chr(39)+Chr(39))tStr=Replace(tStr,"|","_")ChangeChar=tStrEndFunction这是我以前的代码,希望对楼主有帮助你把他变成c#就可以了
解决方案十五:
学习
其他方案:
参考:http://blog.csdn.net/cocosoft/archive/2004/04/12/19138.aspx与http://blog.csdn.net/cocosoft/archive/2003/10/08/19137.aspx的区别。
其他方案:
参考:快速保存ListView内存中大量数据到Excelhttp://bbs.msproject.cn/default.aspx?g=posts&t=88-----------------------------庆祝http://bbs.msproject.cn/过1000会员
其他方案:
一个excel最多65535行吧?!
其他方案:
ou108()的方法可以应该,把excel文件当成数据库文件
其他方案:
代码估计有问题,效率不够高,试试其他的方法吧
其他方案:
既要将数据导入Excel中,又要根据数据设置不同行的颜色,而且数据有10万条,用什么办法能够很快的完成数据导入Excel的操作呢?我做的是C#中窗体项目
其他方案:
C#中导入到EXCEL中速度是很慢的,但有一种方法是很快的,但我看不懂!
其他方案:
mark