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; } }
时间: 2024-10-08 20:50:30