Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在C#.net中使用EXCEL interop api读取空单元格值?

如何在C#.net中使用EXCEL interop api读取空单元格值?
EN

Stack Overflow用户
提问于 2012-11-15 10:56:46
回答 2查看 28.1K关注 0票数 8

如果我试图读取空的EXCEL单元格,则会收到System.com_object错误。我的代码是:

代码语言:javascript
运行
AI代码解释
复制
public static List<OrderPC> getFilters(string fileCheckout)
    {
        List<OrderPC> orderPCs = new List<OrderPC>();
        XLDoc sldoc = new XLDoc();

        string localPath = @"C:\Temp\PCs.xlsx";

        Microsoft.Office.Interop.Excel.Application oXL=null;
        Microsoft.Office.Interop.Excel.Workbook mWorkBook=null;
        Microsoft.Office.Interop.Excel.Worksheet mWSheet1=null;
        Microsoft.Office.Interop.Excel.Range xlRange=null;
        try
        {
            oXL = new Microsoft.Office.Interop.Excel.Application();

            mWorkBook = oXL.Workbooks.Open(localPath);

            mWSheet1 = mWorkBook.Sheets[1];

            xlRange = mWSheet1.UsedRange;

            foreach (Microsoft.Office.Interop.Excel.Hyperlink hl in xlRange.Hyperlinks)
            {

               int y = hl.Range.Column;

                int z = hl.Range.Row;

                string vFilter = mWSheet1.Cells[z, y + 1].Value2.Trim();

                if (vFilter.CompareTo("Weekly") == 0)
                {
                    String baseUri = "http://xxx.yyy.net?";
                    int followUpIndex = baseUri.Length;
                    OrderPC orderPc = new OrderPC();
                    orderPc.ProductClass = hl.TextToDisplay.Trim();
                    orderPc.HyperLink = hl.Address.Trim().Substring(followUpIndex);
                    orderPc.SpecType = mWSheet1.Cells[z, y - 1].Value2.Trim();
                     if (mWSheet1.Rows[z].Cells[y + 3] != null || mWSheet1.Rows[z].Cells[y + 3].Value2 != string.Empty)
                        {
                            orderPc.ManufactureDate = mWSheet1.Cells[z, y + 3].Value2.ToString(); //Here is the error**
                        }
                    //Console.WriteLine(orderPc.ProductClass+"----"+orderPc.HyperLink);

                    orderPCs.Add(orderPc);
                }
            }
        }
        catch (Exception ex)
        {
        }
        finally
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();

            Marshal.FinalReleaseComObject(xlRange);
            Marshal.FinalReleaseComObject(mWSheet1);

            mWorkBook.Close(Type.Missing, Type.Missing, Type.Missing);
            Marshal.FinalReleaseComObject(mWorkBook);

            oXL.Quit();
            Marshal.FinalReleaseComObject(oXL);
        }
        return orderPCs;
    }

这个excel文件有10列,我想我正在读取一个有效的单元格。错误是**“

{Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference

at CallSite.Target(Closure , CallSite , Object )

at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)

"**我没有任何线索,因为它的COM。帮助是非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-15 15:56:13

添加另一个检查

代码语言:javascript
运行
AI代码解释
复制
if (mWSheet1.Cells[z, y + 3].Value2 != null)

或者使用以下代码转换为字符串,因为如果Value2为空,则不会失败

代码语言:javascript
运行
AI代码解释
复制
orderPc.ManufactureDate = Convert.ToString(mWSheet1.Cells[z, y + 3].Value2);
票数 15
EN

Stack Overflow用户

发布于 2021-03-16 04:55:08

如果单元格不为空或不为string.empty,则检查单元格。您的单元格很可能不为空或不为string.emtpy。

您需要使用&&而不是||,因为如果您的单元格既不为空也不为string.empty,则只需要true

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13396073

复制
相关文章
Django获取URL中的数据
我们将第一种形式称为“URL路径参数”;第二种形式称为“URL关键字形式”。下面讲述如何在Django中获取这两种形式的数据。
zy010101
2021/11/02
5.7K0
js获取url中的参数
js获取url中的参数 <script language="javascript"> function getRequestPars() { var url = location.search;
码客说
2019/10/22
15.5K0
js获取url中的参数
js获取url中的参数 function UrlSearch() { var name, value; var str = kk; //取得整个地址栏 var num = st
河岸飞流
2019/08/09
15.6K0
js获取URL中的参数
一般网页开发中会使用url进行传参,有的采用java的方式或其他的方式,下面我来介绍一下如何通过js来获取url中的参数。请看代码:
OECOM
2020/07/01
13.9K0
Django小技巧07: 在模板中获取当前URL
确保项目配置里的context_processors包含django.template.context_processors.request.
用户1416054
2018/11/29
3.8K0
Django小技巧07: 在模板中获取当前URL
[javascript] js获取url中的get参数
调用数组的map函数 , map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
唯一Chat
2021/05/17
10.8K0
获取URL地址中的GET参数
/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL var local_url = document.location.href; //获取要取得的get参数位置 var get = local_url.indexOf(par +"="); if(get == -1){ return false; } //截取字符串
似水的流年
2018/01/18
7.1K0
获取URL地址中的GET参数
/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL var local_url = document.location.href; //获取要取得的get参数位置 var get = local_url.indexOf(par +"="); if(get == -1){ return false; } //截取字符串
似水的流年
2018/01/14
6.7K0
封装获取URL中params的值
utils const str = "http:www.baidu.com?name=swt&age=80&heigth=200" function get(key) { //获取?位置的索引
peng_tianyu
2022/12/15
3.1K0
JS 获取URL中的参数值
本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: Sep 11, 2019 at 11:40 am
Alone88
2019/10/22
17.9K0
在ASP.NET MVC 中获取当前URL、controller、action
一、URL的获取很简单,ASP.NET通用: 【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数)  string url=Request.Url.ToString();  【2】获取 虚拟目录名+页面名+参数:  string url=Request.RawUrl; (或 string url=Request.Url.PathAndQuery;) 【3】获取 虚拟目录名+页面名: string url=HttpContext.Current.Request.Url.AbsoluteP
欢醉
2018/01/22
2.5K0
js获取url地址中的参数
<script type="text/javascript"> function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return r[2]; return null; } </script
磊哥
2018/05/08
18.9K0
获取URL地址中的GET参数
/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL var local_url = document.location.href; //获取要取得的get参数位置 var get = local_url.indexOf(par +"="); if(get == -1){ return false; } //截取字符串
似水的流年
2019/12/11
6.4K0
python-获取URL中的json数据
数据源为某系统提供的URL,打开是json文件,python代码获取如下: URL替换成自己的即可。 import urllib.request def get_record(url): resp = urllib.request.urlopen(url) ele_json = json.loads(resp.read()) return ele_json if __name__ == '__main__': print(get_record('http://abc.co/
py3study
2020/01/16
5.6K0
pageadmin CMS教程:模板中获取自定义文件的url节点值
我们通过*Route.config配置自定义文件时,模板中可能会用到url中的一些节点,下面这段配置一个自定义搜索页面
Almost Lover
2019/04/04
1.4K0
js获取url链接中的域名部分
因为一个正确的url必定是由http://或者是https://、domain、路径/参数组成,所以可以用split以/进行分割成数组,取第3部分就是域名了。
全栈程序员站长
2022/07/08
9.3K0
node.js 获取url中的各个参数
如果url为:http://127.0.0.1:8020/?param=10&id=code 1,首先引入模块: var http = require('http'); var url = requ
Rattenking
2021/01/29
8K0
PHP 获取指定 URL 页面中的所有链接
以下代码可以获取到指定 URL 页面中的所有链接,即所有 a 标签的 href 属性:
Z4
2020/04/22
7.7K0
WordPress自定义url 中的“author” 别名
默认的话,WordPress 链接到文章“作者”的别名(slug name)是如 devework.com/author/name 那样的,通过下面的代码,可以修改为devework.com /profile/name 。这种情况适合开发非博客用途的站点,比如说商品展示网站,具体自行发散使用~ add_action('init', 'cng_author_base'); function cng_author_base() { global $wp_rewrite; $author_slug = 'prof
Jeff
2018/01/19
1.5K0
dns url转发_获取url参数的方法
DNSPod是一款免费智能DNS产品,可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。
全栈程序员站长
2022/11/02
6.5K0

相似问题

递归搜索和替换cmd中的Perl (Windows)

30

Perl:搜索和替换

12

Perl搜索和替换

11

Perl编辑XML文件:搜索和替换

20

Perl中的多文件和递归搜索

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文