一、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/zh-tw/n/144663.html