如何阅读刚刚发布到我的服务器的Excel电子表格?我搜索了一些东西,但我只找到了如何阅读带有文件名路径的Excel电子表格,这不是我的情况.
我需要这样的东西:
public ActionResult Import(HttpPostedFileBase file)
{
var excel = new ExcelQueryFactory(file); //using linq to excel
}
Run Code Online (Sandbox Code Playgroud) 我正在使用LinqToExcel库.到目前为止工作得很好,除了我需要在特定行开始查询.这是因为来自客户端的Excel电子表格在数据实际开始之前使用excel文件顶部的一些图像和"标题"信息.
数据本身将易于阅读并且相当通用,我只需要知道如何告诉从ExcelQueryFactory特定行开始.
我知道这个WorksheetRange<Company>("B3", "G10")选项,但我不想指定一个结束行,只是从哪里开始读取文件.
使用最新版本的LinqToExcel与C#
我正在使用库LinqToExcel来读取我的mvc4项目中的excel文件.我的问题是当我尝试读取第4行的标题时......我怎么能这样做?
在项目中,存在一个返回所有列名的函数,但我想这些列需要在第0行.
// Summary:
// Returns a list of columns names that a worksheet contains
//
// Parameters:
// worksheetName:
// Worksheet name to get the list of column names from
public IEnumerable<string> GetColumnNames(string worksheetName);
Run Code Online (Sandbox Code Playgroud)
谢谢.
我处于不寻常的位置,有两个不同的Excel上传模板,一个是"人性化的",一个是机器生成的.因此,列数据头是不同的,并且难以对齐它们.
因此,我想使用序数位置而不是列的"名称"来引用列映射.目前我有这个:
var excel = new ExcelQueryFactory(excelFileName);
excel.AddMapping<Student>(x => x.FirstName, "First Name");
excel.AddMapping<Student>(x => x.LastName, "Last Name");
excel.AddMapping<Student>(x => x.LastFour, "Last 4 Student ID");
excel.AddMapping<Student>(x => x.LastDate, "Last Date");
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
var excel = new ExcelQueryFactory(excelFileName);
excel.AddMapping<Student>(x => x.FirstName, "A");
excel.AddMapping<Student>(x => x.LastName, "C");
excel.AddMapping<Student>(x => x.LastFour, "G");
excel.AddMapping<Student>(x => x.LastDate, "H");
Run Code Online (Sandbox Code Playgroud)
其中字母是Excel中的列引用.
有没有办法做到这一点?
我正在尝试读取xlsx文件.
我有例外
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. c#
Run Code Online (Sandbox Code Playgroud)
然后我从这里安装它
http://www.microsoft.com/en-us/download/details.aspx?id=13255
Run Code Online (Sandbox Code Playgroud)
然后我改变了platform target对x64
现在我得到了这个例外:
BadImageFormatException was unhandeled
{"Could not load file or assembly 'LinqToExcel, Version=1.9.0.0, Culture=neutral, PublicKeyToken=9c8ea65a58f03f1f' or one of its dependencies. An attempt was made to load a program with an incorrect format."}
Run Code Online (Sandbox Code Playgroud)
我已经安装了linq_to_excel
Install-Package LinqToExcel
Run Code Online (Sandbox Code Playgroud)
然后将lib文件添加到引用
我正在尝试学习如何使用LINQTOExcel来查询CSV文件.按照网站上的教程,我调整了他们的示例来处理我的数据(文件名通过OpenDialog组件传递给它):
var csv = new ExcelQueryFactory(filename);
var test = from c in csv.Worksheet<TestData>()
select c;
foreach(var t in test)
{
Console.WriteLine(t.Contract_Id);
}
Run Code Online (Sandbox Code Playgroud)
我有一个单独的TestData类/模型,如下所示:
class TestData
{
public string Transaction_Id { get; set; }
public string Value_Date { get; set; }
public string Transmit_Date { get; set; }
public string Transmit_Time { get; set; }
public string Contract_Id { get; set; }
public string Contract_Amount { get; set; }
public string Contract_Rage { get; set; }
public string TestAmount { get; …Run Code Online (Sandbox Code Playgroud) 看看这篇文章:Excel"外部表不是预期的格式."
我在该帖子中描述了同样的问题,但我使用LinqtoExcel来读取文件而不是普通查询.
LinqToExcel等效设置连接字符串作为该帖子的答案表明了什么?
这是我正在使用的代码:
var excelOM = new ExcelQueryFactory(pPathArchivoOM);
var despachosClient = from c in excelOM.Worksheet<RegistroDespachoOM>("Tabla_1")
where c.DESTINAT.Contains("SOMETEXT")
select c;
//Identificar los despachos asociados a números de documento sin datos aún.
foreach (RegistroDespachoOM despacho in despachosClient)
{ ...
Run Code Online (Sandbox Code Playgroud)
我的问题是:在foreach开始时"外部表格不是预期的格式".
编辑(我的问题已经解决,但问题仍然没有答案):我正在使用EPPlus代替LinqToExcel执行此任务,现在一切正常.
使用linqtoexcel读取服务器生成的电子表格.唯一的问题是其中一个标题中有一个点,它拒绝拉.制造商缩写为Mfg.我在其页面上按照示例使用了以下代码
ExcelQueryFactory excel = new ExcelQueryFactory();
excel.FileName = myXLFile;
excel.AddMapping<Part>(x => x.Manufacturer, "Mfg.");
var parts = from x in excel.Worksheet<Part>(0)
select x;
Run Code Online (Sandbox Code Playgroud)
但制造商在所有对象中都是空的.我对Linq很新,所以不确定我可能有什么选择让这个工作.我想它在尝试映射到Part对象时被点弄糊涂了......
我有一个用VS2012编写的asp.net应用程序。在使用VS2015之前,我一直没有问题地使用LinqToExcel。这是我的代码:
var excel = new ExcelQueryFactory(fileName);
var entriesQuery = from entry in excel.Worksheet<VEntry>(0)
where entry.MovieTitle != null
select entry;
var entries = entriesQuery.ToList();
Run Code Online (Sandbox Code Playgroud)
VEntry类
public class VEntry
{
[ExcelColumn("id kolekcji")]
[DefaultValue("")]
public String CollectionId { get; set; }
[ExcelColumn("nazwa kolekcji")]
[DefaultValue("")]
public String CollectionName { get; set; }
[ExcelColumn("Tytu? serialu/serii/filmu")]
[DefaultValue("")]
public String MovieTitle { get; set; }
[ExcelColumn("Tytu? odcinka")]
[DefaultValue("")]
public String EpisodeTitle { get; set; }
[ExcelColumn("Sezon")]
[DefaultValue("")]
public String Season { get; set; }
[ExcelColumn("nr odcinka")]
[DefaultValue("")] …Run Code Online (Sandbox Code Playgroud) 我linqtoexcel在我的asp.net mvc 4项目中使用它来读取 Excel 文件并从那里获取所有值。但我只得到最后一行的值。这是我的代码,
控制器
public ActionResult ExcelRead()
{
string pathToExcelFile = ""
+ @"C:\MyFolder\ProjectFolder\sample.xlsx";
string sheetName = "Sheet1";
var excelFile = new ExcelQueryFactory(pathToExcelFile);
var getData = from a in excelFile.Worksheet(sheetName) select a;
foreach (var a in getData)
{
string getInfo = "Name: "+ a["Name"] +"; Amount: "+ a["Amount"] +">> ";
ViewBag.excelRead = getInfo;
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
看法
@ViewBag.excelRead
Run Code Online (Sandbox Code Playgroud)
如何获取所有行的值?非常需要这个帮助!谢谢。