我正在使用LinqToExcel,我希望能够获取excel文件中所有工作表的名称,并将其与我的html表单中的输入进行比较,这样当输入与excel表上的任何名称都不匹配时,系统将抛出一个例外.我如何使用LinqToExcel来执行此操作
我正在使用以下代码查询LinqToExcel中的excel文件:
var excelFile = new LinqToExcel.ExcelQueryFactory(@"\"+txtFileName.Text.Replace(@"\\",@"\"));
var properties = from p in excelFile.Worksheet<Property>()
where AssessmentID != null
select p;
foreach (var autoP in properties)
doSomething();
Run Code Online (Sandbox Code Playgroud)
当我查看运行时调试器时,我会在查看属性变量的"结果视图"时看到"InvalidCastException" .所以,我假设我的班级定义有一些时髦的东西.我还假设我不需要将类的所有成员映射到excel文件,而只需要我认为合适的那些.
所以,这里也是类定义:
public class Property
{
[DataMember]
public int? Year { get; set; }
[DataMember]
public string ChangeReason { get; set; }
[DataMember]
public string AssessmentID { get; set; }
[DataMember]
public string CallBackNotes { get; set; }
[DataMember]
public string InspectionNotes { get; set; }
[DataMember]
public string Notes { get; …Run Code Online (Sandbox Code Playgroud) 我一直在使用LinqToExcel解析exel文档已有一段时间,突然它停止了工作。
我收到以下错误:
外部表格的格式不正确。
任何想法为什么会这样?或如何解决?
if (File.Exists(filenameFull))
{
var excel = new ExcelQueryFactory(filenameFull);
IList<Row> scanningRangesRows =
excel.Worksheet("B - Scanning Ranges").ToList();
Run Code Online (Sandbox Code Playgroud)
我使用的是LinqToExcel 1.6.3版本,当问题开始发生时,我更新为最新版本的LinqToExcel 1.6.6,但无济于事。
我刚刚注意到,我正在下载的文件比以前的版本要小得多。我在记事本中打开它,可以在二进制数据中看到[Content_Types] .xml。因此,看来数据源现在已保存为具有相同扩展名的xls文件的xml表示形式。当我在Excel中手动打开相同文件时,它会弹出
您尝试打开''的文件的格式与文件扩展名指定的格式不同。打开文件之前,请验证该文件来自受信任的来源。您要立即打开文件吗?
单击“是”后,文件仍会打开,外观与以前的版本相同。
我有一个ASP.NET MVC 3应用程序,我想在其中导入excel文件.
我设法使用linq-to-excel库来做到这一点.但是当我在IIS上部署应用程序时,我得到了一个错误,结果是IIS在64位系统上运行.
这可以通过32-bits applications在IIS中启用池的选项来解决.
这会影响应用程序的性能吗?如果是,是否有另一种替代方案linq-to-excel可以在64位上运行.
这对你们大师来说可能是一件非常简单的事情,但我不熟悉C#4和INTEROP.因此,我很难过.这是我的问题.我有一个具有重复数据的excel列,我想将其修剪为唯一值.这是数据的样子:
ColA ColB
10 Adam
12 Jane
14 Adam
18 Adam
20 Eve
Run Code Online (Sandbox Code Playgroud)
所以,最后我只想要ColB的独特名字:
Adam
Jane
Eve
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过将所有这些值放入List中然后向其中添加Distinct功能来实现此目的.但我认为我做错了什么.无论如何,这是我的计划:
Application XLApp = new Microsoft.Office.Interop.Excel.Application();
var XLBook = XLApp.Workbooks.Open(@"c:\temp\Test.xls", ReadOnly: false);
// Grab the 1st sheet
var XLSheet = (Microsoft.Office.Interop.Excel.Worksheet)XLBook.Worksheets.get_Item(1);
XLApp.Visible = true;
// I think I need help with the following lines
IEnumerable<string> myCol = XLApp.Range["B2", XLApp.Range["B2"].End[XlDirection.xlDown]].Select();
myCol.ToList().Distinct();
XLBook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
((_Application)XLApp).Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(XLApp);
Run Code Online (Sandbox Code Playgroud)
如何使用C#4对Excel执行此操作?
提前致谢.
我试图使用linq excel从excel文件中提取整行值.我有所有列名称(有104个不同的名称),现在我只需要获得与每个标题相关联的一行值.我想要做的只是拉出整个第二行的值,但我还没有能够解决这个问题.
有谁知道只拉一排的方法?或者我是否需要以不同的方式处理此问题,并通过标题名称提取单个值.
谢谢.
在我的程序中,我正在阅读excel表并正在做一些linq选择,这工作正常.
问题:我尝试通过应用If语句进行预选.变量将在每种情况下分配(if/else),但编译器没有看到.编译器告诉我初始化var beforehands但是当我尝试这个时,我失败了因为我只习惯像sting,int或double之类的变量,我可以在之前轻松分配:
//This function takes the downloaded xlsx and makes selection of applicable items
var excel = new ExcelQueryFactory("list.xlsx");
//get all items with discount
if (onlyAcceptDiscountedItems == true)
{
var discounts = from s in excel.Worksheet()
where s["Discount/Premium"].Cast<string>().StartsWith("-")
select s;
}
else
{
var discounts = excel.Worksheet();
}
if (discounts.Count() != 0)
{
//some application logic comes here
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时:
var excel = new ExcelQueryFactory("list.xlsx");ter code here
var discounts = excel.Worksheet();
if (onlyAcceptDiscountedItems == true)
{
discounts = from …Run Code Online (Sandbox Code Playgroud) 我有一张xls格式的excel表,我使用LinqToExcel读取它,然后将其导入我的数据库.
此表包含约3K行和仅6列.我使用.addmapping将我的类属性映射到列名
我遇到的问题是:尽管单元格中有数据,但"网络代码"列的单元格仍然是空的.
这是一个空的样本数据!

我的代码观看

以下是数据正确的示例数据:

我的代码观察

我已经尝试将ExcelColumn属性应用于映射,但没有运气!
码:
var factory = new ExcelQueryFactory(_excelFilePath);
factory.AddMapping<ExcelPriceEntity>(x => x.WebCode, "WEB-CODE");
factory.AddMapping<ExcelPriceEntity>(x => x.Type, "TYPE");
factory.AddMapping<ExcelPriceEntity>(x => x.Style, "STYLE");
factory.AddMapping<ExcelPriceEntity>(x => x.Qty, "QTY");
factory.AddMapping<ExcelPriceEntity>(x => x.UnitPrice, "Unit Price");
factory.AddMapping<ExcelPriceEntity>(x => x.Bucket, "WEBCODE W/BUCKET");
factory.StrictMapping = StrictMappingType.ClassStrict;
factory.TrimSpaces = TrimSpacesType.Both;
factory.ReadOnly = true;
var prices = factory.Worksheet<ExcelPriceEntity>(_allPricesSheetName).ToList();
var priccerNP = prices.Where(p => p.Type.Contains("900 ARROW TAPE")).ToList();
Run Code Online (Sandbox Code Playgroud)
我的PriceEntity类:
public class ExcelPriceEntity
{
//[ExcelColumn("TYPE")]
public string Type { get; set; }
public string WebCode { get; set; …Run Code Online (Sandbox Code Playgroud)