栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

ug如何导入excel数据点

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ug如何导入excel数据点

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Diagnostics;

using Microsoft.Office.Interop.Excel;

using System.Data.OleDb;

using System.Diagnostics;

private void OpenExcel(string strFileName)

{

object missing = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//启动Excel应用程序

if (excel == null)

{

System.Web.HttpContext.Current.Response.Write("");

}

else

{

excel.Visible = false;//对象是否可见

excel.UserControl = true;//如果应用程序可见或者由用户创建或启动,则为true。 如果您使用CreateObject或GetObject函数以编程方式创建或启动应用程序,并且隐藏应用程序,则为False。

#region 以只读的形式打开EXCEL文件

///Workbook: 代表一个Microsoft Excel工作簿。

///Workbook Open方法打开一个打开一个工作簿。

///参数表:

///string Filename:文件名,要打开的工作簿的文件名。

///object UpdateLinks = Type.Missing:可选对象。指定文件中链接的更新方式。如果省略此参数,则会提示用户指定如何更新链接。否则,该参数是下表中列出的值之一。如果Microsoft Excel以WKS,WK1或WK3格式打开文件,并且UpdateLinks参数是2,Microsoft Excel将从附加到该文件的图表生成图表。如果参数为0,则不创建图表。

///object ReadOnly = Type.Missing:可选对象。如果是以只读模式打开工作簿。

///object Format = Type.Missing:可选对象。如果Microsoft Excel正在打开文本文件,则此参数将指定分隔符,如下表所示。如果省略此参数,则使用当前分隔符。

///object Password = Type.Missing:可选对象。包含打开受保护工作簿所需密码的字符串。如果省略此参数并且工作簿需要密码,则会提示用户输入密码。

///object WriteResPassword = Type.Missing:可选对象。包含写入写保护工作簿所需密码的字符串。如果省略此参数并且工作簿需要密码,则会提示用户输入密码。

///object IgnoreReadOnlyRecommended = Type.Missing:可选对象。如果Microsoft Excel不显示只读推荐消息(如果工作簿是使用“只读推荐”选项保存的),则为真。

///object Origin = Type.Missing:可选对象。如果该文件是一个文本文件,则该参数指示它来自何处(以便代码页和回车/换行符(CR / LF)可以正确映射)。可以是以下Microsoft.Office.Interop.Excel.XlPlatform常量之一:xlMacintosh,xlWindows或xlMSDOS。如果省略此参数,则使用当前的操作系统。

///object Delimiter = Type.Missing:可选对象。如果该文件是一个文本文件,并且Format参数是6,则该参数是一个字符串,它指定要用作分隔符的字符。例如,使用Chr(9)作为制表符,使用“,”作为逗号,使用“;”分号,或使用自定义字符。只使用字符串的第一个字符。

///object Editable = Type.Missing:可选对象。如果该文件是Microsoft Excel 4.0加载项,则此参数为True以打开加载项,以便它是一个可见的窗口。如果此参数为False或省略,加载项被打开为隐藏,并且它不能被隐藏。此选项不适用于在Microsoft Excel 5.0或更高版本中创建的加载项。如果该文件是Excel模板,请使用True为打开指定的模板进行编辑或False以基于指定的模板打开新的工作簿。默认值是False。

///object Notify = Type.Missing:可选对象。如果无法以读/写模式打开文件,则该参数为True,将文件添加到文件通知列表中。 Microsoft Excel将以只读方式打开文件,轮询文件通知列表,然后在文件变得可用时通知用户。如果此参数为False或省略,则不会请求通知,并且任何尝试打开不可用的文件都将失败。

///object Converter = Type.Missing:可选对象。打开文件时第一个文件转换器的索引。首先尝试指定的文件转换器;如果此转换器不能识别该文件,则尝试所有其他转换器。转换器索引由Microsoft.Office.Interop.Excel._Application.this [System.Object,System.Object]属性返回的转换器的行号组成。

///object AddToMru = Type.Missing:可选对象。如果要将此工作簿添加到最近使用的文件列表中,则为true。默认值为False。

///object Local = Type.Missing:可选对象。 True将文件保存为Microsoft Excel的语言(包括控制面板设置)。 False(默认值)将文件保存为Visual Basic for Applications(VBA)(通常为UU),除非WorkbeniesOpen运行的VBA项目是旧的国际化XL5 / 95 VBA项目。

///object CorruptLoad = Type.Missing:可选对象。 可以是以下常量之一:xlNormalLoad,xlRepairFile,和xlExtractData。 如果没有指定值,默认行为通常是正常的,但如果Excel已经尝试打开文件,则可能是安全加载或数据恢复。 第一次尝试是正常的。 如果Excel在打开文件时停止运行,则第二次尝试是安全加载。 如果Excel再次停止运行,则下一次尝试是数据恢复。

#endregion

Workbook wb = excel.Application.Workbooks.Open(strFileName, missing, true, missing, missing, missing,missing, missing, missing, true, missing, missing, missing, missing, missing);

#region 取得第1个工作薄

///Worksheets:返回一个代表指定工作簿中所有工作表的Microsoft.Office.Interop.Excel.Sheets集合。 只读表格对象。

#endregion

Worksheet ws = (Worksheet)wb.Worksheets.get_Item(1);

#region 取得总记录行数(包括标题列)

///UsedRange:返回一个Microsoft.Office.Interop.Excel.Range对象,该对象表示指定工作表上使用的范围。 只读。

///Cells:返回一个Range对象,它表示指定范围内的单元格。

///Rows返回表示指定范围内的行的Microsoft.Office.Interop.Excel.Range对象。

///Count:返回集合中的对象数量。

#endregion

int rowsint = ws.UsedRange.Cells.Rows.Count; //得到行数

int columnsint = ws.UsedRange.Cells.Columns.Count;//得到列数

//取得数据范围区域 (不包括标题列)

//Range:表示单元格、行、列、包含一个或多个相邻单元格块或三维范围的单元格的选择。

Range rng1 = ws.Cells.get_Range("B2", "B" + rowsint); //item

Range rng2 = ws.Cells.get_Range("K2", "K" + rowsint); //Customer

object[,] arryItem = (object[,])rng1.Value2; //获取范围的值

object[,] arryCus = (object[,])rng2.Value2;

//将新值赋给一个数组

string[,] arry = new string[rowsint - 1, 2];

for (int i = 1; i <= rowsint - 1; i++)

{

//Item_Code列

arry[i - 1, 0] = arryItem[i, 1].ToString();

//Customer_Name列

arry[i - 1, 1] = arryCus[i, 1].ToString();

}

System.Web.HttpContext.Current.Response.Write(arry[0, 0] + " / " + arry[0, 1] + "#" + arry[rowsint - 2, 0] + " / " + arry[rowsint - 2, 1]);

}

excel.Quit(); excel = null;//退出Microsoft Excel

System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName("excel");

foreach (Process pro in procs)

{

pro.Kill();//没有更好的方法,只有杀掉进程

}

GC.Collect();

}

引用:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号