C#读写Excel

简介: 读Range ce=sheet.Cells[2,3];string vv=ce.value;写 //注意: // * Excel中形如Cells[x][y]的写法,前面的数字是RowIndex,后面的数字是ColumnInde...

Range ce=sheet.Cells[2,3];
string vv=ce.value;

                //注意:
                // * Excel中形如Cells[x][y]的写法,前面的数字是RowIndex,后面的数字是ColumnIndex!
                // * Excel中的行、列都是从1开始的,而不是0
                //1.制作一个新的Excel文档实例
                Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();//创建excel
                Workbook myWorkBook = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);//创建工作簿(workBook;即excel文件主体本身)                  
                                                                                            //Worksheet sheet = (Worksheet)workBook.Worksheets[1];//创建主工作簿
                                                                                            //增加查询信息Sheet                                                                                              //
                Microsoft.Office.Interop.Excel.Worksheet sarchInfoSheet = myWorkBook.Sheets.Add();
                sarchInfoSheet.Name = "查询条件";//确定sheet名称
                sarchInfoSheet.Cells[1, 1] = "起始时间:";//起始时间
                sarchInfoSheet.Cells[1, 2] = SearchPageModel.mySearchPageModel.startDateTime.ToString();//起始时间
                sarchInfoSheet.Cells[2, 1] = "结束时间:";//结束时间
                sarchInfoSheet.Cells[2, 2] = SearchPageModel.mySearchPageModel.endDateTime.ToString();//结束时间
                sarchInfoSheet.Cells[3, 1] = "手机型号:";
                sarchInfoSheet.Cells[3, 2] = SearchPageModel.mySearchPageModel.selectedModel;
                sarchInfoSheet.Cells[4, 1] = "测试计划:";
                sarchInfoSheet.Cells[4, 2] = SearchPageModel.mySearchPageModel.selectedFile;
                sarchInfoSheet.Cells[5, 1] = "失败项目:";
                sarchInfoSheet.Cells[5, 2] = SearchPageModel.mySearchPageModel.selectedItem;
                sarchInfoSheet.Cells[6, 1] = "失败原因:";
                sarchInfoSheet.Cells[6, 2] = SearchPageModel.mySearchPageModel.selectedReason;
                sarchInfoSheet.Cells[7, 1] = "PhoneID:";
                sarchInfoSheet.Cells[7, 2] = SearchPageModel.mySearchPageModel.phoneID;
                sarchInfoSheet.Cells[8, 1] = "工位IP:";
                sarchInfoSheet.Cells[8, 2] = SearchPageModel.mySearchPageModel.computerIP;
                sarchInfoSheet.Cells[9, 1] = "计算机名:";
                sarchInfoSheet.Cells[9, 2] = SearchPageModel.mySearchPageModel.computerName;
                sarchInfoSheet.Cells[10, 1] = "线程号码:";
                sarchInfoSheet.Cells[10, 2] = SearchPageModel.mySearchPageModel.threadNumber;
                sarchInfoSheet.Cells[11, 1] = "操作人员:";
                sarchInfoSheet.Cells[11, 2] = SearchPageModel.mySearchPageModel.tsOperator;
                sarchInfoSheet.Cells[12, 1] = "测试类型:";
                sarchInfoSheet.Cells[12, 2] = SearchPageModel.mySearchPageModel.testType;
                sarchInfoSheet.Cells[13, 1] = "软件版本:";
                sarchInfoSheet.Cells[13, 2] = SearchPageModel.mySearchPageModel.softVersion;
                sarchInfoSheet.Cells[14, 1] = "测试OK:";
                sarchInfoSheet.Cells[14, 2] = SearchPageModel.mySearchPageModel.testResultOK;
                sarchInfoSheet.Cells[15, 1] = "测试NG:";
                sarchInfoSheet.Cells[15, 2] = SearchPageModel.mySearchPageModel.testResultNG;
                sarchInfoSheet.Cells[16, 1] = "Data is exported from HustAnalyser.";
                //

                Worksheet myWorkSheet = myWorkBook.Sheets.Add();

                //2.设置Excel分页卡标题
                myWorkSheet.Name = "详细数据";//确定sheet名称


                //方法二:生成Excel中列头名称
                for (int i = 0; i < dataSouce.Columns.Count; i++)
                {
                    myWorkSheet.Cells[1, i + 1] = dataSouce.Columns[i].ColumnName;//输出DataGridView列头名
                    if (i>= addCollumNum && searchResults[i - addCollumNum].result == "FAIL")
                    {
                        Microsoft.Office.Interop.Excel.Range columnRange = myWorkSheet.Columns.EntireColumn[i + 1];
                        columnRange.Font.Color = 0x0000FF;//(蓝00绿00红00)  
                    }
                }

                //RunInfo = "testDataArray复制数据到Excel";
                //方法二:整体赋值
                Microsoft.Office.Interop.Excel.Range dataSourceRange = myWorkSheet.Range[myWorkSheet.Cells[2, 1], myWorkSheet.Cells[dataSouce.Rows.Count + 1, dataSouce.Columns.Count]];
                dataSourceRange.Value = testDataArray; //给Exccel中的Range整体赋值

                //RunInfo = "Excel格式设置...";
                dataSourceRange.EntireColumn.AutoFit(); //设定Excel列宽度自适应

                //5.设置格式
                Microsoft.Office.Interop.Excel.Range rowRange = myWorkSheet.Rows.EntireRow[1];//首行
                rowRange.Font.ColorIndex = ColorIndex.深蓝;//首行颜色
                rowRange.Interior.Color = 0xA6AA00;//(蓝A6绿AA红00)  首行背景
                rowRange.Font.Bold = true;//首行加粗

                Microsoft.Office.Interop.Excel.Range colRange = myWorkSheet.Columns.EntireColumn[1];//首列
                //colRange.Font.ColorIndex = ColorIndex.深蓝;//首列颜色
                colRange.Font.Bold = true;//首列加粗
                //冻结首行首列
                excelApp.ActiveWindow.SplitRow = 1;//设置将指定窗口拆分成窗格处的行号(拆分线以上的行数)
                excelApp.ActiveWindow.SplitColumn = 1;//设置将指定窗口拆分成窗格处的列号(拆分线左侧的列数)
                excelApp.ActiveWindow.FreezePanes = true;//冻结首行首列

                //边框实线
                Microsoft.Office.Interop.Excel.Range dataRange = myWorkSheet.Range[myWorkSheet.Cells[1, 1], myWorkSheet.Cells[dataSouce.Rows.Count, dataSouce.Columns.Count]];//
                dataRange.Borders.LineStyle = 1;//设置边框为实线
                                                //myWorkSheet.Cells.Borders.LineStyle = 1;//设置整个数据区边框为实线

                //auto adjust column width (according to content)调整列宽
                //Microsoft.Office.Interop.Excel.Range allColumn = myWorkSheet.Columns;
                //allColumn.AutoFit();//调整列宽

                dispatcher.Invoke(new System.Action(() =>
                {
                    //以下为Excel保存过程-----------------------------
                    string excelFile = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\HustAnalyser导出info" + DateTime.Now.ToString("-yyyyMMddHHmmss") + ".xlsx"; //默认桌面
                    System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog();
                    saveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
                    saveFileDialog.FileName = "HustAnalyser导出info" + DateTime.Now.ToString("-yyyyMMddHHmmss");
                    if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        excelFile = saveFileDialog.FileName;
                    }
                    //myWorkBook.Save();//保存结果
                    myWorkBook.SaveAs(excelFile);//保存结果
                    excelApp.Quit();
                    excelApp = null;
                    System.Diagnostics.Process.Start("Explorer", "/select," + excelFile);
                    //Excel保存结束------------------------------------
                }));
目录
相关文章
|
6天前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
对excel读写的三个模块,xlsxwriter最牛,xlwt , xlrd,openpyxl
对excel读写的三个模块,xlsxwriter最牛,xlwt , xlrd,openpyxl
|
2月前
|
SQL JSON 关系型数据库
n种方式教你用python读写excel等数据文件
n种方式教你用python读写excel等数据文件
|
2月前
|
easyexcel Java 关系型数据库
阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
该文章主要介绍了在Java应用中如何使用EasyExcel技术完成对Excel文件的导入和导出操作,包括环境搭建、基本概念、快速入门、进阶操作和综合应用等内容,并提供了相关代码示例和注意事项。
 阿里巴巴-EasyExcel 基于Java的简单、省内存的读写Excel
|
2月前
|
文字识别 C# Python
使用C#将几个Excel文件合并去重分类
使用C#将几个Excel文件合并去重分类
25 3
|
2月前
|
开发框架 算法 .NET
C#使用MiniExcel导入导出数据到Excel/CSV文件
C#使用MiniExcel导入导出数据到Excel/CSV文件
48 0
|
3月前
|
存储 对象存储 Python
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
|
4月前
|
XML Java 测试技术
《手把手教你》系列技巧篇(六十七)-java+ selenium自动化测试 - 读写excel文件 - 中篇(详细教程)
【6月更文挑战第8天】本文介绍了Java中操作Excel的工具,包括POI和JXL。POI支持处理Office 2003及以下的OLE2格式(.xls)和2007以上的OOXML格式(.xlsx)。而JXL只能处理2003版本的Excel文件。文章详细讲解了如何下载和使用JXL库,并给出了一个简单的Java代码示例,展示如何读取2003版Excel文件中的数据。在实际项目中,由于JXL对新版本Excel的支持限制,通常推荐使用POI。
64 5
|
4月前
|
Java 测试技术 Apache
《手把手教你》系列技巧篇(六十八)-java+ selenium自动化测试 - 读写excel文件 - 下篇(详细教程)
【6月更文挑战第9天】本文介绍了如何使用Java处理Excel文件中的不同数据类型,包括日期、数字、布尔值和标签(常规字符串)。文章提供了两个示例,分别使用JXL库和Apache POI库来读取Excel文件。
44 1
|
4月前
|
C#
【C#】C#读写Excel文件
【C#】C#读写Excel文件
61 1