csharp 的Microsoft.Office.Interop.Excelを使って的Excelを操作する。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 的Microsoft.Office.Interop.Excelを使って的Excelを操作する。相关的知识,希望对你有一定的参考价值。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
namespace InteropExcelSample
{
class Program
{
static void Main(string[] args)
{
string fileName = @"C:\sample.xls";
// Excel系の各オブジェクトは変数で受けて、明示的にリリースしないとExcel.exeのプロセスが残ってしまう。
// 例えば、
// cells = (Excel.Range)sheet.Cells[iRow + 1, iColumn + 1];
// とかだとCellsのオブジェクトが残ってしまうので注意。
Excel.Application xls = null;
Excel.Workbooks books = null;
Excel.Workbook book = null;
Excel.Worksheet sheet = null;
Excel.Range cells = null;
Excel.Range cell = null;
try {
xls = new Excel.Application();
books = xls.Workbooks;
// Excelを開く。
book = (Excel.Workbook)(books.Open(fileName
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing
, Type.Missing));
if (book.Sheets.Count > 0) {
sheet = (Excel.Worksheet)book.Sheets[1]; // Interop.Excelのインデックスは基本1から。
cell = sheet.UsedRange;
if (cell != null) {
// 使用されているセルの行数、列数を取得。
int maxRow = cell.Rows.Count;
int maxColumn = cell.Columns.Count;
// 行列でループ
cells = (Excel.Range)sheet.Cells;
for (int iRow = 0; iRow < maxRow; iRow++) {
for (int iColumn = 0; iColumn < maxColumn; iColumn++) {
cell = (Excel.Range)cells[iRow + 1, iColumn + 1];
// 列の幅を変える。
cell.ColumnWidth = (double)cell.ColumnWidth + 2;
// セルの内容を変更する。
cell.Value2 = (string)cell.Text + "edited.";
}
}
}
xls.DisplayAlerts = false;
book.Save();
}
} finally {
if (cell != null) {
Marshal.ReleaseComObject(cell);
}
if (sheet != null) {
Marshal.ReleaseComObject(sheet);
}
if (book != null) {
book.Close(Type.Missing, Type.Missing, Type.Missing);
Marshal.ReleaseComObject(book);
}
if (books != null) {
Marshal.ReleaseComObject(books);
}
if (xls != null) {
xls.Quit();
Marshal.ReleaseComObject(xls);
}
}
}
}
}
以上是关于csharp 的Microsoft.Office.Interop.Excelを使って的Excelを操作する。的主要内容,如果未能解决你的问题,请参考以下文章
无法将“microsoft.Office.Interop.Excel.ApplicationClass”类型的 COM 对象转换为“microsoft.Office.Interop.Excel.App
缺少 Microsoft.Office.Core 参考
怎样安装microsoft office
使用 Microsoft Office 2016 为 Microsoft Office 2013 开发
Microsoft office 2010激活问题
Microsoft office2019有用的激活码求