C#操作excel的简单接口

真的是非常简单的接口…提供了读取某一页的所有数据,往某一页了写所有数据的功能。把所有数据都当作字符串来处理,对于一些数值会损失精度但是满足日常使用没什么问题。特别适用于多行相同格式的数据,没试过对于添加了筛选之类的excel会发生什么TAT

class XlsLoader
{
    static Application excelApp = new Application();
    
    public static string[,] loadXls(string path, int workSheetNum)
    {
        Workbook workBook = excelApp.Workbooks.Open(path);
        Worksheet workSheet = workBook.Worksheets[workSheetNum];

        var usedRange = workSheet.UsedRange;
        var rowCount = usedRange.Rows.Count;
        var colCount = usedRange.Columns.Count;
        string[,] ret = new string[rowCount, colCount]; 


        for (int i = 1; i <= rowCount; ++i)
        {
            for (int j = 1; j <= colCount; ++j)
            {
                String s = workSheet.UsedRange.Cells[i, j].Value == null ? null : String.Format("{0}", workSheet.UsedRange.Cells[i, j].Value);
                ret[i - 1, j - 1] = s;
            }
        }
        workBook.Close();
        return ret;
    }

    public static void createXls(String path) {
        var workBook = excelApp.Workbooks.Add();
        workBook.SaveAs(path);
        workBook.Close();
    }

    public static void writeToXls(string path, int workSheetNum, string sheetName, string[,] data) {
        int tolRow = data.GetLength(0);
        int tolCol = data.GetLength(1);

        Workbook workBook = excelApp.Workbooks.Open(path);
        while (workSheetNum > workBook.Worksheets.Count) 
        {
            workBook.Worksheets.Add(After: workBook.Worksheets[workBook.Worksheets.Count]);
        } 
        Worksheet workSheet = workBook.Worksheets[workSheetNum];
        workSheet.Name = sheetName;
        
        for (int i = 1; i <= tolRow; ++i)
        {
            for (int j = 1; j <= tolCol; ++j)
            {
                workSheet.Cells[i, j].Value = data[i - 1, j - 1];
            }
        }
        workBook.Save();
        workBook.Close();
        
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中,你可以使用`Microsoft.Office.Interop.Excel`命名空间提供的COM接口来快速输入Excel。 首先,确保你的项目引用了`Microsoft.Office.Interop.Excel`程序集。然后,你可以按照以下步骤进行快速输入Excel: 1. 创建一个Excel应用程序对象和一个工作簿对象: ```csharp using Excel = Microsoft.Office.Interop.Excel; // 创建Excel应用程序对象 Excel.Application excelApp = new Excel.Application(); // 创建工作簿对象 Excel.Workbook workbook = excelApp.Workbooks.Add(); // 获取第一个工作表 Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1]; ``` 2. 使用`Cells`属性来访问单元格,并设置其值: ```csharp // 设置A1单元格的值为"Hello, World!" worksheet.Cells[1, 1] = "Hello, World!"; ``` 3. 保存并关闭工作簿,并释放相关的COM对象: ```csharp // 保存工作簿 workbook.SaveAs("路径\\文件名.xlsx"); // 关闭工作簿 workbook.Close(); // 释放相关的COM对象 System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook); System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp); ``` 以上是一个简单的示例,你可以根据需要进行更多的操作,如写入多个单元格、设置格式等。请注意,在使用完COM对象后,要确保及时释放和关闭,以避免资源泄漏。 需要注意的是,使用`Microsoft.Office.Interop.Excel`需要安装Microsoft Office套件或者安装适当的组件。同时,使用COM接口会有一些性能上的开销,因此在大数据量的情况下可能不太适用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值