一、Excel文件读取与写入
Excel文件是业界广泛的数据交换格式。在C#开发中,我们可以利用Excel COM对象,来实现对Excel文件的操作,包括读取和写入。
首先,我们需要在VS中引入COM对象。在项目中的“引用”中,添加Microsoft Excel 16.0 Object Library。
using Microsoft.Office.Interop.Excel;
using System.IO;
namespace ExcelReadWrite
{
class Program
{
static void Main(string[] args)
{
//创建Excel对象
Application excel = new Application();
//打开Excel文件
Workbook workbook = excel.Workbooks.Open(@"D:\test.xlsx");
//获取第一个工作表
Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
//读取单元格内容
string cellContent = worksheet.Cells[1, 1].Value.ToString();
Console.WriteLine(cellContent);
//写入单元格内容
worksheet.Cells[1, 2] = "Hello World";
//保存并关闭Excel文件
workbook.Save();
workbook.Close();
}
}
}
代码中,我们首先创建了一个Excel对象,然后打开指定路径下的Excel文件。获取第一个工作表,并读取第一个单元格的内容。最后,在第一行第二列写入内容,并保存修改。
二、Excel图表处理
Excel图表是一个非常实用的数据可视化工具。在C#中,我们也可以通过Excel COM对象,来实现对Excel图表的操作,包括添加、修改、删除等。
下面的代码演示了如何在Excel中创建一个图表,并设置其属性:
using Microsoft.Office.Interop.Excel;
namespace ExcelCharts
{
class Program
{
static void Main(string[] args)
{
//创建Excel对象
Application excel = new Application();
//创建新的Excel文件
Workbook workbook = excel.Workbooks.Add();
//获取第一个工作表
Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
//添加数据
worksheet.Cells[1, 1] = "Month";
worksheet.Cells[1, 2] = "Sales";
worksheet.Cells[2, 1] = "Jan";
worksheet.Cells[2, 2] = "100";
worksheet.Cells[3, 1] = "Feb";
worksheet.Cells[3, 2] = "200";
worksheet.Cells[4, 1] = "Mar";
worksheet.Cells[4, 2] = "300";
//添加图表
ChartObjects chartObjs = (ChartObjects)worksheet.ChartObjects(Type.Missing);
ChartObject chartObj = chartObjs.Add(300, 50, 300, 250);
Chart chart = chartObj.Chart;
//设置图表属性
chart.ChartType = XlChartType.xlColumnClustered;
chart.SetSourceData(worksheet.get_Range("A1:B4", Type.Missing), Type.Missing);
//保存Excel文件
workbook.SaveAs(@"D:\testChart.xlsx");
workbook.Close();
}
}
}
代码中,我们首先创建一个Excel对象,然后新建一个Excel文件。添加数据,然后再添加一个图表,并设置其类型和数据源。最后保存Excel文件。
三、Excel数据操作
Excel作为一个数据交换格式,在实际开发中,经常需要进行数据操作,包括排序、筛选等。
下面的代码演示了如何对Excel数据进行排序和筛选:
using Microsoft.Office.Interop.Excel;
namespace ExcelDataManipulation
{
class Program
{
static void Main(string[] args)
{
//创建Excel对象
Application excel = new Application();
//打开Excel文件
Workbook workbook = excel.Workbooks.Open(@"D:\test.xlsx");
//获取第一个工作表
Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
//数据排序
Range sortRange = worksheet.Range["A2:C5"];
sortRange.Sort(sortRange.Columns[1], XlSortOrder.xlDescending,
sortRange.Columns[2], Type.Missing, XlSortOrder.xlAscending,
Type.Missing, XlSortOrder.xlAscending, XlYesNoGuess.xlYes,
Type.Missing, Type.Missing, XlSortOrientation.xlSortColumns,
XlSortMethod.xlPinYin, XlSortDataOption.xlSortNormal,
XlSortDialogOrder.xlSortDialogOrder, XlSortLanguageID.xlSortLanguageIDDefault);
//数据筛选
Range criteriaRange = worksheet.Range["A1:C5"];
criteriaRange.AutoFilter(1, ">200", XlAutoFilterOperator.xlAnd, Type.Missing, true);
//保存并关闭Excel文件
workbook.Save();
workbook.Close();
}
}
}
代码中,我们首先创建一个Excel对象,然后打开指定路径下的Excel文件。获取第一个工作表,然后分别对数据进行了排序和筛选操作,最后保存并关闭Excel文件。
四、Excel图像处理
Excel中也支持插入图片,操作方式类似于Windows窗体的Image控件。
下面的代码演示了如何读取、插入和处理Excel中的图像:
using Microsoft.Office.Interop.Excel;
namespace ExcelImage
{
class Program
{
static void Main(string[] args)
{
//创建Excel对象
Application excel = new Application();
//打开Excel文件
Workbook workbook = excel.Workbooks.Open(@"D:\test.xlsx");
//获取第一个工作表
Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
//读取图像
Range picRange = worksheet.Range["D1:D3"];
foreach (Shape picShape in picRange.Shapes)
{
//插入图像
string picPath = @"D:\" + picShape.Name + ".png";
picShape.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap);
Image img = Clipboard.GetImage();
img.Save(picPath, System.Drawing.Imaging.ImageFormat.Png);
//更改图像大小和位置
picShape.Height = 100;
picShape.Width = 100;
picShape.Left = picShape.Left + picShape.Width + 10;
picShape.Top = picShape.Top + picShape.Height + 10;
//删除原有图像
picShape.Delete();
FileInfo file = new FileInfo(picPath);
worksheet.Shapes.AddPicture(file.FullName, MsoTriState.msoFalse, MsoTriState.msoTrue,
picShape.Left, picShape.Top, picShape.Width, picShape.Height);
}
//保存并关闭Excel文件
workbook.Save();
workbook.Close();
}
}
}
代码中,我们首先创建一个Excel对象,然后打开指定路径下的Excel文件。获取第一个工作表,读取需要操作的图像,并插入到新位置,最后删除原有图像,保存Excel文件。
五、Excel表格处理
Excel中的表格是一种非常常见的数据结构,我们可以通过C#的Excel COM对象,对其中的表格进行操作,包括表格对齐、单元格合并等。
下面的代码演示了如何对Excel表格进行操作,包括对齐、单元格合并等:
using Microsoft.Office.Interop.Excel;
namespace ExcelTable
{
class Program
{
static void Main(string[] args)
{
//创建Excel对象
Application excel = new Application();
//打开Excel文件
Workbook workbook = excel.Workbooks.Open(@"D:\test.xlsx");
//获取第一个工作表
Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
//对齐
Range alignRange = worksheet.Range["A1:C5"];
alignRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
alignRange.VerticalAlignment = XlVAlign.xlVAlignCenter;
//单元格合并
Range mergeRange = worksheet.Range["D1:E1"];
mergeRange.MergeCells = true;
mergeRange.Value = "Sales Report";
//保存并关闭Excel文件
workbook.Save();
workbook.Close();
}
}
}
代码中,我们首先创建一个Excel对象,然后打开指定路径下的Excel文件。获取第一个工作表,然后对选定区域进行了对齐和单元格合并操作,最后保存并关闭Excel文件。
原创文章,作者:TMPX,如若转载,请注明出处:https://www.506064.com/n/144663.html