问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#中如何把Excel数据存入数组?

发布网友 发布时间:2022-04-23 17:02

我来回答

2个回答

热心网友 时间:2023-10-05 05:17

本方案需要引用免费版的spire.xls.dll

using Spire.Xls;
using System.Data;

namespace ReadExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Workbook对象
            Workbook wb = new Workbook();

            //输入Excel的密码
            wb.OpenPassword = "密码";

            //加载Excel文档
            wb.LoadFromFile("Encrypted.xlsx");

            //获取第一个工作表
            Worksheet sheet = wb.Worksheets[0];

            //将工作表第一行第一列至第三行第四列区域内的数据导出为DataTable
            DataTable datatable = sheet.ExportDataTable(1, 1, 3, 4, false);

            //将DataTable数据转换为二维数组
            string[,] array = DataTableToArray(datatable);
        }

        //将DataTable转为二维数组
        public static string[,] DataTableToArray(DataTable dt)
        {
            int i = 0;
            int rowsCount = dt.Rows.Count;
            int colsCount = dt.Columns.Count;
            string[,] arrReturn = new string[rowsCount, colsCount];
            foreach (System.Data.DataRow row in dt.Rows)
            {
                int j = 0;
                foreach (System.Data.DataColumn column in dt.Columns)
                {
                    arrReturn[i, j] = row[column.ColumnName].ToString();
                    j = j + 1;
                }
                i = i + 1;
            }
            return arrReturn;
        }
    }
}

热心网友 时间:2023-10-05 05:18

先把Excel文件读到Dataset里 然后去一个一个去读取!
以下是我的代码!
private void ImportData()
{
string name = "test.xls";
string type = name.Substring(name.LastIndexOf(".") + 1);

if (type == "xls" || type == "XLS")
FileUpload1.SaveAs(File_Url + name);
else
Response.Write(" <script language=javascript> alert( '打开的不是Excel格式文件! '); </script> ");

string mystring = "Provider=Microsoft.Jet.OleDb.4.0;data Source='" + File_Url + "test.xls';Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";

OleDbConnection cnnxls = new OleDbConnection(mystring);
cnnxls.Open();

//获取Excel文件的sheet 表名

DataTable schemaTable = cnnxls.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string tableName = schemaTable.Rows[0]["Table_Name"].ToString(); // 获取第一个表名

OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [" + tableName + "$] ", cnnxls);
DataSet myDs = new DataSet();
myDa.Fill(myDs, "[" + tableName + "$]");
string addStr = null;
if (myDs.Tables[0].Rows.Count > 0)
{
try
{
for (int i = 0; i < myDs.Tables[0].Rows.Count; i++)
{
#region 用三个名称判断术语是否存在,要是存在就UPDATE下,不存在就插入数据(必须三种名字都一样)

DataSet countDs = CountTerm(myDs.Tables[0].Rows[i].ItemArray[0].ToString(),
myDs.Tables[0].Rows[i].ItemArray[1].ToString(),
myDs.Tables[0].Rows[i].ItemArray[2].ToString());

int l = countDs.Tables[0].Rows.Count;
if (countDs.Tables[0].Rows.Count == 0)
{
// 数据插入
addStr = AddTerm(MoleID,
myDs.Tables[0].Rows[i].ItemArray[0].ToString(),
myDs.Tables[0].Rows[i].ItemArray[1].ToString(),
myDs.Tables[0].Rows[i].ItemArray[2].ToString(),
myDs.Tables[0].Rows[i].ItemArray[3].ToString(),
DateTime.Now,
PortalSettings.CurrentUser.Identity.Email);
}

#endregion
}
}
catch
{
}
finally
{
if (addStr == null)
addStr = "术语导入成功!";
cnnxls.Close();
deleteFiles(File_Url);
Response.Write(" <script language=javascript> alert( '" + addStr + "'); </script> ");
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
婴儿突然变的睡觉多了怎么办 宝宝奶量没增加但是睡眠时间变长怎么回事 孩子出现哪些行为时,意味着孩子进入到猛涨期?家长该做些什么? 1岁宝宝睡眠突然增多是怎么回事 李冰冰与自己小十六岁的男友感情稳定,你会介意找一个比自己小的人结婚... 二月份是什么星座呢 二月份的星座是什么座 十二星座对应月份 2月份是什么座是什么星座 2月份出生的什么星座 如何用excel函数拆分指定的数据 怎么将excell的数据赋值给数组c Excel 请问如何将一行的数据存入数组 如何从其他excel表格里提取数据,组成数组 excel 将数组拆分 Excel 如何拆分数据并写入数组 电磁炉显示E2怎么维修 小霸王电磁炉显示E1是什么故障? 小霸王电磁炉维修方法 小霸王电磁炉e2说是电压过高,那是家里的电线问题还是电磁炉的问题? 小霸王SB-2032电磁炉,插上电风扇转,但显示器显示E2开不了机是怎回事。求助 寻求小霸王电磁炉显示e2修理方法 电磁炉显示E2是什么意思? 手机贴膜边上的气泡会消掉吗? 绑定京东的银行卡完整账号能看吗 京东上购买东西后如何查看是那张银行卡支付的? 可以在京东查询到已绑定好的完整银行卡号吗? 京东怎么查询绑定的银行卡卡号完整? 微信怎么关闭自动清理聊天记录? 如何取消电脑版微信自动清理缓存设置 excel选中区域写入数组 莫代尔的衣服除了容易变形,还有其他缺点吗? 95莫代尔5氨纶的优缺点 莫代尔面料穿着舒服吗 莫代尔的透气性怎么样 怎么煮荷包蛋才会不散? 煮荷包蛋怎么煮才不会散? 煮荷包蛋时,怎么操作,才能不撒花? 水煮荷包蛋怎么做才能又圆又嫩还不散花? 怎么水煮荷包蛋不会煮烂 荷包蛋怎么煮才不会烂 怎么样才能把荷包蛋做好,而不会煮烂? 怎样在电脑上打开u盘 企业的五险一金怎么交 五险一金单位怎么交的 公司上五险一金是怎么上的 企业怎么缴五险一金 在家怎么炒板栗 在家炒板栗的做法大全 自己在家怎样炒板栗好吃