社区
ASP
帖子详情
NPOI+Asp.net生成excel文件行数太多问题。
maliang13567
2014-09-11 02:50:32
IRow.Isheet.CreateRow(int rownum)函数。生成的行数太多在rownum超出int类型的范围,这个能解决么,还是这个是npoi的一个bug啊。
...全文
250
3
打赏
收藏
NPOI+Asp.net生成excel文件行数太多问题。
IRow.Isheet.CreateRow(int rownum)函数。生成的行数太多在rownum超出int类型的范围,这个能解决么,还是这个是npoi的一个bug啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
csdn_aspnet
2014-09-17
打赏
举报
回复
那你就写别的sheet dataset导出excel,带有多个sheet public static void ToExcelSheet(DataSet ds, string fileName) { //int testnum = ds.Tables.Count-1; SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = "xls"; saveDialog.Filter = "Excel文件|*.xls"; saveDialog.FileName = fileName; saveDialog.ShowDialog(); fileName = saveDialog.FileName; if (fileName.IndexOf(":") < 0) return; //被点了取消 Microsoft.Office.Interop.Excel.Application appExcel; appExcel = new Microsoft.Office.Interop.Excel.Application(); if (appExcel == null) { MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel"); return; } Microsoft.Office.Interop.Excel.Workbook workbookData; Microsoft.Office.Interop.Excel.Worksheet worksheetData; Range range; workbookData = appExcel.Workbooks.Add(System.Reflection.Missing.Value); appExcel.DisplayAlerts = false;//不显示警告 //xlApp.Visible = true;//excel是否可见 // //for (int i = workbookData.Worksheets.Count; i > 0; i--) //{ // Microsoft.Office.Interop.Excel.Worksheet oWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbookData.Worksheets.get_Item(i); // oWorksheet.Select(); // oWorksheet.Delete(); //} for (int k = 0; k < ds.Tables.Count; k++) { worksheetData = (Microsoft.Office.Interop.Excel.Worksheet)workbookData.Worksheets.Add(System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value); // testnum--; if (ds.Tables[k] != null) { worksheetData.Name = ds.Tables[k].TableName; //写入标题 for (int i = 0; i < ds.Tables[k].Columns.Count; i++) { worksheetData.Cells[1, i + 1] = ds.Tables[k].Columns[i].ColumnName; range = (Range)worksheetData.Cells[1, i + 1]; range.Interior.ColorIndex = 15; range.Font.Bold = true; range.NumberFormatLocal = "@";//文本格式 // range.EntireColumn.AutoFit();//自动调整列宽 // range.WrapText = true; //文本自动换行 range.ColumnWidth = 15; } //写入数值 for (int r = 0; r < ds.Tables[k].Rows.Count; r++) { for (int i = 0; i < ds.Tables[k].Columns.Count; i++) { worksheetData.Cells[r + 2, i + 1] = ds.Tables[k].Rows[r][i]; //Range myrange = worksheetData.get_Range(worksheetData.Cells[r + 2, i + 1], worksheetData.Cells[r + 3, i + 2]); //myrange.NumberFormatLocal = "@";//文本格式 //// myrange.EntireColumn.AutoFit();//自动调整列宽 //// myrange.WrapText = true; //文本自动换行 //myrange.ColumnWidth = 15; } // rowRead++; System.Windows.Forms.Application.DoEvents(); } } worksheetData.Columns.EntireColumn.AutoFit(); workbookData.Saved = true; } workbookData.SaveAs(fileName); workbookData.Close(); appExcel.Quit(); DialogResult btn = MessageBox.Show(null, "文件“" + fileName + "”保存成功。是否现在打开?", "信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (btn == DialogResult.Yes) { ApplicationClass excelApp = new ApplicationClass(); Workbook workbook2 = excelApp.Workbooks.Open(fileName); excelApp.Visible = true; } // appExcel.Quit(); GC.Collect(); } 调用方法: private void simpleButton1_Click(object sender, EventArgs e) { string str=@"Data Source=PC-20120629GXCM\BIAO;Initial Catalog=hotelbook;Integrated Security=True"; SqlConnection con = new SqlConnection(str); SqlCommand cmd = new SqlCommand(); string strcmd = "select * from 客房类型;" + "select * from 楼层信息;" + "select * from 入住单;"; cmd.CommandText = strcmd; con.Open(); SqlDataAdapter sdr = new SqlDataAdapter(strcmd,con); DataSet ds = new DataSet(); sdr.Fill(ds); ds.Tables[0].TableName = "客房类型"; ds.Tables[1].TableName = "楼层类型"; ds.Tables[2].TableName = "入住单"; string fileName=null; //ToExcelSheet(ds, fileName); export.ToExcelSheet to = new ToExcelSheet(); to.DataSet2Sheet(ds, fileName); }
maliang13567
2014-09-17
打赏
举报
回复
IRow.Isheet.CreateRow(int rownum)中rownum好像是16位的 最大只能65526,条数据,超过65525行就报错了。
csdn_aspnet
2014-09-16
打赏
举报
回复
不可能 你那要多少列啊 Row row = sheet1.CreateRow(0); row.CreateCell(0).SetCellValue("订单日期");//创建列名 int irow = 1; foreach (DataRow trow in dt.Rows) { row = sheet1.CreateRow(irow); irow++; row.CreateCell(0).SetCellValue(trow["orderdate"].ToString()); }//循环写数据
.NET5跨平台Json-XML-二进制序列化
学习到通过N
POI
来操作
Excel
文件
的帮助列库,N
POI
如何操作
Excel
,常见的开发中需要的导入导出
Excel
文件
相关操作的一些帮助库和各种案例应用;
Asp.net
中利用N
POI
组件快速导入导出Execl数据
相信很多童鞋都开发过Execl的导入导出功能,最近产品中无论是后台数据分析的需要,还是前端满足用户管理的方便,都有Execl导入导出的维护需求产生。 以前做这个功能,如果是web,利用HttpContext.Current.Response....
asp.net
N
POI
导出xlsx格式
文件
,打开
文件
报“
Excel
已完成
文件
级验证和修复。此工作簿的某些部分可能已被修复或丢弃” HSSF,XSSF和SXSSF的区别 使用XSSFWork创...
asp.net
N
POI
导出xlsx格式
文件
,打开
文件
报“
Excel
已完成
文件
级验证和修复。此工作簿的某些部分可能已被修复或丢弃” N
POI
导出xlsx格式
文件
,会出现如下情况: 点击“是”: 导出代码如下: //...
免费高效实用的.NET操作
Excel
组件N
POI
(.NET组件介绍之六)
N
POI
可以
生成
没有安装在您的服务器上的Microsoft Office套件的
Excel
报表,并且在后台调用Microsoft
Excel
ActiveX更有效率;从Office文档中提取文本,以帮助您实现全文索引功能(大多数时候,此功能用于创建搜索引擎...
N
POI
导出
Excel
模板
asp.net
1、n
poi
导出是以一个模板
Excel
导出,
asp.net
中以
文件
流的形式将模板中的
Excel
从服务器上面下载下来。所以必须要有模板 2、n
poi
导出 using (FileStream fs = new FileStream(HttpContex...
ASP
28,390
社区成员
357,068
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章