日期:2014-05-18  浏览次数:21150 次

C#保存xlsx
用dotnet C# 导入25W行数据进Excel,保存之前看到Excel里面数据都是全的,但是一保存就出"互换性错误",大概是说,老版本不支持大数据,大量数据丢失。如果是在Excel界面里另存为xlsx的话,数据都是存在的。

所以,想请教一下大家,用程序的话,一般怎么保存数据而不丢失,最好是保存为xlsx。
用的包excel 12版的

使用的方法
Workbook.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

实际是
Workbook.SaveAs("C:\\2.xlsx", IExcel.XlFileFormat.[color=Red]xlWorkbookNormal[/color], null, null, null, null, IExcel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);

是不是我用错了,或者还有其他的保存方法。

谢谢


------解决方案--------------------
EXCEL一个SHEET最大的行是65535呢。
LZ是如何在一个SHEET里面保存25W行数据的啊?学习学习。
------解决方案--------------------
是不是要更新一下你的excel包,让他支持大数据
------解决方案--------------------
excel 2000 和excel 2003 支持65535行数据,而excel 2007支持百万。
------解决方案--------------------
探讨
2007 最大行是百万
2003 最大行是65535

------解决方案--------------------
C# code
string filename = "d:\\excel\\" + name + ".xlsx"; //文件保存路径
                        //string filename=
                        //创建Excel文档
                        
                        Excel.Workbook ExcelDoc = ExcelApp.Workbooks.Add(Type.Missing);
                        Excel.Worksheet xlSheet = ExcelDoc.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                        Excel.XlFileFormat format = Excel.XlFileFormat.xlWorkbookNormal;
                        ExcelApp.DisplayAlerts = false;
                        //Excel.XlSaveAsAccessMode accessmode = Excel.XlSaveAsAccessMode.xlExclusive;

                        //写入内容 


                        if (content != null)
                            xlSheet.Cells[1, 1] = content;
                        else
                            xlSheet.Cells[1, 1] = "内容";
                        
                        //文件保存
                        xlSheet.SaveAs(filename);
                        ExcelDoc.Close(Type.Missing,filename, Type.Missing);
                        //ExcelApp.Quit();
                        message = name + "文档生成成功,以保存到C:CNSI下";

------解决方案--------------------
楼主这得要多大的数据量啊
------解决方案--------------------
有csv存吧 逗号分开-。-