网页上传excel文件到服务器,服务端用NPOI解析excel
来源:互联网 发布:淘宝助理模板数据包 编辑:程序博客网 时间:2024/06/09 18:07
aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MyLoad.aspx.cs" Inherits="UpdateAddi_MyLoad" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <table style="width: 343px"> <tr> <td style="width: 100px">单文件上传</td> <td style="width: 100px"></td> </tr> <tr> <td style="width: 100px"> <asp:FileUpload ID="FileUpload1" runat="server" Width="475px" /> </td> <td style="width: 100px"> <asp:Button ID="bt_upload" runat="server" OnClick="bt_upload_Click" Text="上传" /> </td> </tr> <tr> <td style="width: 100px; height: 21px;"> <asp:TextBox TextMode="MultiLine" ID="lb_info" runat="server" ForeColor="Red" Width="1000px" Height="1000px"></asp:TextBox> </td> <td style="width: 100px; height: 21px"> </td> </tr> </table> </div> </form></body></html>
aspx.cs:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Data.OleDb;using System.IO;using Agiso.DBAccess;using NPOI.SS.UserModel;using NPOI.HSSF.UserModel;using NPOI.XSSF.UserModel;public partial class UpdateAddi_MyLoad : System.Web.UI.Page{ string serverpath = ""; DataTable data = null; DataTable oldData = null; string cellValue = ""; string dataLabel = ""; protected void Page_Load(object sender, EventArgs e) { } protected void bt_upload_Click(object sender, EventArgs e) { try { if (FileUpload1.PostedFile.FileName == "") { this.lb_info.Text = "请选择文件!"; } else { string filepath = FileUpload1.PostedFile.FileName; string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1); serverpath = Server.MapPath("../files/UploadFile/") + filename; FileUpload1.PostedFile.SaveAs(serverpath); this.lb_info.Text += "文件路径=" + filepath; this.lb_info.Text += "上传成功!"; data = GetDataFromExcelByNPOI(); this.lb_info.Text = ""; //取出所有标题 for (int i = 0; i < data.Columns.Count; i++) { lb_info.Text += ("{" + data.Columns[i] + "}"); } lb_info.Text += "\r\n"; lb_info.Text += "//---------以上是标题,以下是单元格---------------------------"; lb_info.Text += "\r\n"; //取出所有标题以外的单元格 for (int i = 0; i < data.Rows.Count; i++) { for (int j = 0; j < data.Columns.Count; j++) { if (data.Rows[i][j].ToString() == "") { cellValue = "------"; } else { cellValue = data.Rows[i][j].ToString(); } lb_info.Text += ("{" + cellValue + "}"); } lb_info.Text += "\r\n"; } } //读取数据库 oldData = GetOrderData(); for (int k = 0; k < oldData.Rows.Count; k++) { for (int v = 0; v < oldData.Columns.Count; v++) { switch(v) { case 0: dataLabel="NumIid="; break; case 1: dataLabel="Title="; break; case 2: dataLabel="PicUrl="; break; case 3: dataLabel="OuterId="; break; case 4: dataLabel="Additional="; break; default: break; } lb_info.Text+=dataLabel; lb_info.Text += oldData.Rows[k][v].ToString(); lb_info.Text += "\r\n"; } } } catch (Exception ex) { this.lb_info.Text = "上传发生错误!原因是:" + ex.ToString(); } } DataTable GetOrderData() { IDbAccess db = DbAccessDAL.CreateDbAccess(); return db.ExecuteTable(string.Format("SELECT NumIid, Title, PicUrl,OuterId, Additional FROM AutoDummySendItemDefine WHERE Nick={0}", DbUtil.ToSqlString("***"))); } DataTable GetDataFromExcelByNPOI() { IWorkbook workbook; if (serverpath == "") return null; string fileType = Path.GetExtension(serverpath); using (FileStream file = new FileStream(serverpath, FileMode.Open, FileAccess.Read)) { if (fileType == ".xls") { workbook = new HSSFWorkbook(file); } else if (fileType == ".xlsx") { workbook = new XSSFWorkbook(file); } else { return null; } ISheet sheet = workbook.GetSheetAt(0);//取第一个表 DataTable table = new DataTable(); IRow headerRow = sheet.GetRow(0); int cellCount = headerRow.LastCellNum; int rowCount = sheet.LastRowNum; for (int i = headerRow.FirstCellNum; i < cellCount; i++) { DataColumn column = new DataColumn(headerRow.GetCell(i).ToString()); table.Columns.Add(column); } for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++) { IRow row = sheet.GetRow(i); DataRow dataRow = table.NewRow(); if (row != null) { for (int j = row.FirstCellNum; j < cellCount; j++) { if (row.GetCell(j) != null) dataRow[j] = GetCellValue(row.GetCell(j)); } } table.Rows.Add(dataRow); } return table; } } private object GetCellValue(ICell cell) { object value = null; try { if (cell.CellType != CellType.Blank) { switch (cell.CellType) { case CellType.Numeric: // Date comes here if (DateUtil.IsCellDateFormatted(cell)) { value = cell.DateCellValue; } else { // Numeric type value = cell.NumericCellValue; } break; case CellType.Boolean: // Boolean type value = cell.BooleanCellValue; break; case CellType.Formula: value = cell.CellFormula; break; default: // String type value = cell.StringCellValue; break; } } } catch (Exception) { value = ""; } return value; }}
0 0
- 网页上传excel文件到服务器,服务端用NPOI解析excel
- 上传excel文件到服务器
- flex上传excel文件到服务器上
- npoi导出到EXCEL
- NPOI导出到Excel
- 【NPOI】导出Excel文件
- js读取并解析excel文件,之后上传json到服务器
- 怎么实现NPOI导出excel保存到服务器上,然后返回文件地址下载?
- 调用服务器上Excel.dll文件,读取上传到服务器的Excel文件结构.
- 将服务器的网页报表保存到excel文件
- C# 用NPOI保存为Excel文件
- 上传excel文件存到服务器并且读取sheet
- 上传,解析Excel文件并保存数据到数据库
- 文件上传之解析EXCEL
- 上传并解析excel文件
- 到处到Excel中NPOI
- NPOI导出DataTable到Excel
- Npoi导入导出到Excel
- 自定义控件之对现有控件拓展(一)
- ffmpeg 保存avcodec_decode_audio4解码后的PCM数据
- 将数据库查询出的数据保存到Excel表格中
- Map集合的4种遍历方式
- 关于:socket阻塞、非阻塞,同步、异步、I/O模型
- 网页上传excel文件到服务器,服务端用NPOI解析excel
- div显示隐藏和内容修改
- 据说最快的拼接字符串的方式bytes. Buffer
- Test
- 浏览器兼容性问题和解决方案
- com.sun.pdfview.PDFParseException: Expected 'xref' at start of table
- 2016.5.11
- CodeForces 657A Bear and Forgotten Tree 3
- 解决 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 问题。