Aspose.cells 处理Excel文件

本文介绍了一个使用C#实现的Excel数据导入程序示例。该程序包括浏览并选择Excel文件、读取指定工作表的数据及将数据导入到数据库等功能。通过此示例可以了解到如何在C#中操作Excel文件并进行数据处理。
摘要由CSDN通过智能技术生成
//浏览Excel文件
        private void btnScan_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.DefaultExt = "xlsx";
            ofd.Filter = "Excel file|*.xlsx";
            if (ofd.ShowDialog() == true)
            {
                this.txtFilePath.Text = ofd.FileName;
            }
        }

        //读取Excel
        private DataTable ReadExcel(string strFileName, int i)
        {
            Workbook book = new Workbook(strFileName);
            Worksheet sheet = book.Worksheets[i-1];
            Cells cells = sheet.Cells;

            return cells.ExportDataTableAsString(1, 0, cells.MaxDataRow, cells.MaxDataColumn + 1);
        }

        //导入Excel数据
        private void btnImport_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (this.txtFilePath.Text.Trim().Length <= 0)
                {
                    MessageBox.Show("Please select import file!");
                    return;
                }

                int tid = Convert.ToInt32(cbProductType.SelectedValue.ToString());
                int pid = Convert.ToInt32(cbOfferCompany.SelectedValue.ToString());
                DataTable dt = ReadExcel(this.txtFilePath.Text.Trim(), 1);
                int iCount = dt.Rows.Count;
                this.pbRoll.Value = 0;
                this.pbRoll.Visibility = Visibility.Visible;
                
                Action<int> method = x => { this.pbRoll.Value = x; DispatcherHelper.DoEvents(); };
                int index = 0;

                DataClasses1DataContext db = new DataClasses1DataContext();

                for (int i = 0; i < iCount; i++)
                {
                    index++;
                    if (method != null) method(index * 100 / iCount);

                    TBProduct pro = new TBProduct();
                    pro.No = dt.Rows[i][0].ToString();
                    pro.Name = dt.Rows[i][1].ToString();
                    pro.SalePrice = StringToDecimal(dt.Rows[i][2].ToString());
                    pro.SRP = StringToDecimal(dt.Rows[i][3].ToString());
                    pro.TId = tid;
                    pro.PId = pid;
                    pro.IsDelete = 1;
                    pro.State = 1;

                    db.TBProduct.InsertOnSubmit(pro);
                    db.SubmitChanges();
                }

                this.lbResult.Content = "Import Records:" + iCount.ToString();

                MessageBox.Show("Import Successful!");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Import Failed!\n\n" + ex.ToString());
            }
            finally 
            {
                this.pbRoll.Value = 100;
                this.pbRoll.Visibility = Visibility.Hidden;
            }
        }

转载于:https://www.cnblogs.com/buzi521/p/3851520.html

Aspose.Cells是一个用于处理Excel文件的.NET组件。在使用Aspose.Cells导出Excel文件时,可以使用以下代码示例: ```csharp System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response; workbook.Save(Response, HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xlsx", Aspose.Cells.ContentDisposition.Attachment, new Aspose.Cells.XlsSaveOptions(Aspose.Cells.SaveFormat.Xlsx)); ``` 这段代码将Excel文件保存到HttpResponse中,以便将其作为附件下载。其中,`workbook`是你创建的Excel工作簿对象,`filename`是你想要保存的文件名。 在生成Excel文件时,你还可以设置标题行和列头行的样式,例如: ```csharp // 生成标题行 cells.Merge(0, 0, 1, header.Keys.Count); // 合并单元格,标题行有几列就合并几列 cells\[0, 0\].PutValue(filename); // 填写内容 cells\[0, 0\].SetStyle(styleTitle); // 使用标题样式 cells.SetRowHeight(0, 50); // 第0行,50px高 // 生成列头行 int headerNum = 0; // 当前表头所在列 foreach (string item in header.Keys) { cells\[1, headerNum\].PutValue(item); cells\[1, headerNum\].SetStyle(styleHeader); cells.SetColumnWidthPixel(headerNum, 200); // 设置单元格200宽度 cells.SetRowHeight(1, 30); // 第一行,30px高 headerNum++; } ``` 这段代码示例展示了如何设置标题行和列头行的样式,其中`cells`是你创建的Worksheet对象,`header`是一个包含列头信息的字典,`styleTitle`和`styleHeader`是你定义的样式对象。 希望这些代码示例能帮助到你导出Excel文件使用Aspose.Cells。 #### 引用[.reference_title] - *1* *2* *3* [使用Aspose.Cells导出excel](https://blog.csdn.net/rxbtalent/article/details/99818241)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值