天道酬勤,学无止境

Read Data From Excel

目前有两种方法:一种是使用office对象模型,另一种是使用OpenXML。

比较之后,最终选定使用OpenXML,excel的内容其实都存储在SharedStringTable这个对象中。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何使用C#从Excel文件读取数据(How to read data from excel file using c# [duplicate])
    问题 这个问题已经在这里有了答案: 从C#读取Excel文件(32个答案) 7年前关闭。 我的应用程序需要从excel文件中读取数据。 我正在使用.Net和c#进行开发。 我无法在系统中安装MS Office。 因此,我的应用程序无法读取excel文件,并在为excel加载dll时抛出错误。 在未安装ms office的系统中,如何访问应用程序中的excel文件? 回答1 可以选择使用OleDB并使用Excel表格(例如数据库中的数据表)... 只是一个例子…… string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;" + @"Extended Properties='Excel 8.0;HDR=Yes;'"; using(OleDbConnection connection = new OleDbConnection(con)) { connection.Open(); OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection); using(OleDbDataReader dr = command.ExecuteReader()) { while(dr.Read()) { var
  • 直接从R脚本读取Excel文件(Read an Excel file directly from a R script)
    问题 如何将Excel文件直接读入R? 还是应该首先将数据导出到文本或CSV文件,然后将该文件导入R? 回答1 是的。 请参阅R Wiki上的相关页面。 简短的答案: gdata包中的read.xls在大多数情况下都有效(尽管您需要在系统上安装Perl -在MacOS和Linux上通常已经安装了Perl,但在Windows上则采取了额外的措施,例如,请参见http:// Strawberryperl.com/)。 R Wiki页面上列出了各种警告和替代方法。 我不直接执行此操作的唯一原因是,您可能需要检查电子表格以查看其是否存在故障(怪异的标题,多个工作表[您一次只能阅读一个,尽管您显然可以遍历所有这些工作表] ,包括地块等)。 但是对于格式完整的矩形电子表格,它具有纯数字和字符数据(即,非逗号格式的数字,日期,具有零除错误的公式,缺少值等)..我通常没有问题这个过程。 回答2 让我重申@Chase的建议:使用XLConnect。 我认为使用XLConnect的原因是: 跨平台。 XLConnect是用Java编写的,因此可以在Win,Linux和Mac上运行,而无需更改R代码(可能的路径字符串除外) 没有什么可加载的了。 只需安装XLConnect,即可继续生活。 您仅提到读取Excel文件,但是XLConnect还将写入Excel文件,包括更改单元格格式。
  • 是否可以使用Xlsxwriter从Python的Excel工作表中读取数据? 如果可以,怎么办?(Is it possible to read data from an Excel sheet in Python using Xlsxwriter? If so how?)
    问题 我正在做以下计算。 worksheet.write_formula('E5', '=({} - A2)'.format(number)) 我想在控制台上打印E5中的值。 你能帮我做吗? 是否可以使用Xlsxwriter做到这一点,还是应该使用其他库? 回答1 无法使用XlsxWriter从Excel文件读取数据。 文档中列出了一些替代方法。 回答2 如果要使用xlsxwriter处理熊猫无法使用的格式和公式,则至少可以使用pandas将excel文件导入xlsxwriter对象。 就是这样。 import pandas as pd import xlsxwriter def xlsx_to_workbook(xlsx_in_file_url, xlsx_out_file_url, sheetname): """ Read EXCEL file into xlsxwriter workbook worksheet """ workbook = xlsxwriter.Workbook(xlsx_out_file_url) worksheet = workbook.add_worksheet(sheetname) #read my_excel into a pandas DataFrame df = pd.read_excel(xlsx_in_file_url) # A list
  • 如何使用C#读取Excel文件的数据?(How to read data of an Excel file using C#?)
    问题 如何使用C#读取Excel文件? 我打开一个Excel文件进​​行阅读,然后将其复制到剪贴板中以搜索电子邮件格式,但是我不知道该怎么做。 FileInfo finfo; Excel.ApplicationClass ExcelObj = new Excel.ApplicationClass(); ExcelObj.Visible = false; Excel.Workbook theWorkbook; Excel.Worksheet worksheet; if (listView1.Items.Count > 0) { foreach (ListViewItem s in listView1.Items) { finfo = new FileInfo(s.Text); if (finfo.Extension == ".xls" || finfo.Extension == ".xlsx" || finfo.Extension == ".xlt" || finfo.Extension == ".xlsm" || finfo.Extension == ".csv") { theWorkbook = ExcelObj.Workbooks.Open(s.Text, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t"
  • 读取Excel文件(.xls / .xlsx)的最佳方法(Optimal way to Read an Excel file (.xls/.xlsx))
    问题 我知道可以通过多种方式读取Excel文件: Iterop Oledb Open Xml SDK 兼容性不是问题,因为程序将在受控环境中执行。 我的要求: 将文件读取到DataTable / CUstom Entitie (我不知道如何为对象创建动态属性/字段[列名在Excel文件中会有所不同]) 使用DataTable/Custom Entities可以使用其数据执行某些操作。 使用操作结果更新DataTable 将其写回excel file 。 哪个会更简单。 另外,如果可能的话,请教我有关自定义实体的信息(将属性/字段动态添加到对象) 回答1 看看Linq-to-Excel。 很整洁。 var book = new LinqToExcel.ExcelQueryFactory(@"File.xlsx"); var query = from row in book.Worksheet("Stock Entry") let item = new { Code = row["Code"].Cast<string>(), Supplier = row["Supplier"].Cast<string>(), Ref = row["Ref"].Cast<string>(), } where item.Supplier == "Walmart" select item
  • VBA ADODB Excel-从Recordset读取数据(VBA ADODB excel - read data from Recordset)
    问题 希望您能为我提供帮助,我想从excel文件中读取数据,而我的工作方式是在backgroud中创建Excel应用程序实例,但随后提示我VBA宏-禁用或启用它。 我有100个需要从中收集数据的excel文件,因此,如果系统提示我每个文件,最终都会导致无效的方法。 虽然我是Excel VBA世界的新手,并开始怀疑是否还有其他方法。 我的问题是我可以用其他方式打开它们吗? 我发现了ADODB,我觉得这可能对我有帮助。 所以我有如下代码。 首先,我想从几个单元格中读取数据。 我不知道如何读取数据。 我尝试阅读,如下所示,但它会引发错误。 Opennig连接进行得很好,查询执行也是如此。 但是,我只是猜测如何读取数据。 我使用VBA编辑器。 Sub hello_jet() Set cn = CreateObject("ADODB.Connection") With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=D:\test.xls" & _ "Extended Properties=Excel 8.0;" .Open End With strQuery = "SELECT * FROM [Sheet1$E36:E38]" Set rs = cn.Execute(strQuery) Do
  • 使用Openpyxl将工作表从一个工作簿复制到另一工作簿(Copy worksheet from one workbook to another one using Openpyxl)
    问题 我有大量的EXCEL文件(即200个),我想将一个特定的工作表从一个工作簿复制到另一个工作簿。 我进行了一些调查,但找不到使用Openpyxl的方法 这是我到目前为止开发的代码 def copy_sheet_to_different_EXCEL(path_EXCEL_read,Sheet_name_to_copy,path_EXCEL_Save,Sheet_new_name): ''' Function used to copy one EXCEL sheet into another file. def path_EXCEL_read,Sheet_name_to_copy,path_EXCEL_Save,Sheet_new_name Input data: 1.) path_EXCEL_read: the location of the EXCEL file along with the name where the information is going to be saved 2.) Sheet_name_to_copy= The name of the EXCEL sheet to copy 3.) path_EXCEL_Save: The path of the EXCEL file where the sheet is going to be copied 3
  • VBA ADODB excel - read data from Recordset
    Hope you can help me, I would like to read data from excel file, and the way I was doing was creating instance of Excel application in backgroud, but than I am prompted about VBA macros - disable or enable it. I have 100 of excel files that I need collect data from, so if I would be prompted every single file, i would end up with really not effective approach. Though I am newbie in Excel VBA world and starting to doubt if there is any other way..... My question is can I open them in other way? I find sth ADODB, I feel this might help me. So I have code as below. As first thing I would like to
  • python里读写excel等数据文件的6种常用方式
    下面整理下python有哪些方式可以读取数据文件。 1. python内置方法(read、readline、readlines) read() : 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长 readline() :每次读取一行内容。内存不够时使用,一般不太用 readlines() :一次性读取整个文件内容,并按行返回到list,方便我们遍历 2. 内置模块(csv) python内置了csv模块用于读写csv文件,csv是一种逗号分隔符文件,是数据科学中最常见的数据存储格式之一。csv模块能轻松完成各种体量数据的读写操作,当然大数据量需要代码层面的优化。 csv模块读取文件 # 读取csv文件 import csv with open('test.csv','r') as myFile: lines=csv.reader(myFile) for line in lines: print (line) csv模块写入文件 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' import csv with open('test.csv','w+') as myFile: myWriter=csv.writer(myFile
  • python里读写excel等数据文件的6种常用方式
    下面整理下python有哪些方式可以读取数据文件。 1. python内置方法(read、readline、readlines) read() : 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长 readline() :每次读取一行内容。内存不够时使用,一般不太用 readlines() :一次性读取整个文件内容,并按行返回到list,方便我们遍历 2. 内置模块(csv) python内置了csv模块用于读写csv文件,csv是一种逗号分隔符文件,是数据科学中最常见的数据存储格式之一。csv模块能轻松完成各种体量数据的读写操作,当然大数据量需要代码层面的优化。 csv模块读取文件 # 读取csv文件 import csv with open('test.csv','r') as myFile: lines=csv.reader(myFile) for line in lines: print (line) csv模块写入文件 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' import csv with open('test.csv','w+') as myFile: myWriter=csv.writer(myFile
  • 在C#中使用OLEDB读取受密码保护的Excel文件(Read password protected excel file using OLEDB in C#)
    问题 在我的C#应用​​程序中,我正在使用OLEDB连接字符串“ Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.xls;Extended Properties=\"Excel 8.0;HDR=NO;ReadOnly=true;IMEX=1\" ”读取Excel文件。 为了读取受密码保护的文件,我尝试在连接字符串中添加密码字段,但无法读取文件。 我想知道如果我事先知道它的密码,有什么方法可以使用OLEDB读取受密码保护的Excel文件。 回答1 以下是连接到Excel文件(包括OLEDB)的不同方法。 因此,您无法使用标准方法打开受密码保护的文件。 您必须使用一种解决方法。 如果Excel工作簿受密码保护,则即使为连接字符串提供正确的密码,也无法打开它进行数据访问。 如果您尝试尝试,则会收到以下错误消息:“无法解密文件。 尽管不是C#,这是解决方案,但是您可以轻松地将其适应您的目的。 如果您自己不知道密码,另一种方法是不使用密码重写文件。 您可以使用这个方便的项目,并在其中添加以下例程: public void SaveFile() { this.excelWorkbook.SaveAs( this.excelWorkbook.FullName, vk_format, "", vk_write_res_password
  • Anyway for ADO to read updated data from a read-only excel file before save? (VBA)
    I am using the following code to read data from Sheet1 of SAME Excel sheet. I load the data into the return array. The Excel sheet file has "read only" checked and is always opened in "READ ONLY" mode. The issue is that if I change any of the data on Sheet1, because the file is opened as "read only", it won't be reflected in the ADO query. ADO Continues to output what is in the "saved" file and ignores what has been updated in the temp read only version. For example the below pulls value "Col5:6" from cell "E6". If I replace the value to be "test", ADO still outputs "Col5:6" How can I make ADO
  • 读取Excel单元格值,而不是计算它的公式-openpyxl(Read Excel cell value and not the formula computing it -openpyxl)
    问题 我正在使用openpyxl读取单元格值(excel addin-webservice更新此列。) 我使用了data_only = True但是它没有显示当前单元格的值,而是Excel上次读取工作表时存储的值。 wbFile = openpyxl.load_workbook(filename = xxxx,data_only=True) wsFile = wbFile[c_sSheet] 我如何读取单元格的实际值? 回答1 wb = openpyxl.load_workbook(filename, data_only=True) data_only标志有帮助。 回答2 正如@ alex-martelli所说,openpyxl不评估公式。 使用openpyxl打开Excel文件时,可以选择读取公式或最后计算的值。 如您所指示,如果公式取决于加载项,则缓存的值永远不可能是准确的。 作为文件规范之外的加载项,将永远不会支持它们。 相反,您可能希望查看可以与Excel运行时交互的类似xlwings的东西。 回答3 正如@Charlie Clark提到的,您可以使用xlwings (如果您拥有MS Excel)。 这是一个例子 说您有一个带有公式的excel工作表,例如,我用openpyxl定义了一个工作openpyxl from openpyxl import Workbook
  • 使用熊猫对同一工作簿的多个工作表进行pd.read_excel()(Using Pandas to pd.read_excel() for multiple worksheets of the same workbook)
    问题 我有一个较大的电子表格文件(.xlsx),正在使用python pandas处理。 碰巧我需要该大文件中两个选项卡中的数据。 其中一个标签包含大量数据,另一个标签仅包含几个方形单元格。 当我在任何工作表上使用pd.read_excel()时,在我看来整个文件都已加载(不仅仅是我感兴趣的工作表)。 因此,当我两次使用该方法(每张纸一次)时,我实际上不得不使整个工作簿被读两次(即使我们仅使用指定的工作表)。 我使用的是错误的还是仅限于这种方式? 谢谢! 回答1 尝试pd.ExcelFile: xls = pd.ExcelFile('path_to_file.xls') df1 = pd.read_excel(xls, 'Sheet1') df2 = pd.read_excel(xls, 'Sheet2') 如@HaPsantran所指出的,在ExcelFile()调用期间读取了整个Excel文件(似乎没有办法解决此问题)。 这仅使您不必每次访问新表时都必须读取相同的文件。 请注意, pd.read_excel()的sheet_name参数可以是工作表的名称(如上所述),指定工作表编号的整数(例如0、1等),工作表名称或索引的列表或None 。 如果提供了列表,它将返回一个字典,其中的键是工作表名称/索引,而值是数据框。 默认设置是仅返回第一张图纸(即sheet_name=0 )。
  • Python操作Excel(读写)
    背景: 我们使用Python对数据处理的时候经常需要生成Excel报表 准备: pip instaill xlwt(写) pip instaill xlrd(读) 封装好的读写Excel函数文件: import xlwt import xlrd # 将列表写进Excel # file_name:自定义文件名 # data_list:列表 # sheet_name:工作表名称(有默认值) def write_to_excel(file_name, data_list, sheet_name="sheet1"): book = xlwt.Workbook() sheet = book.add_sheet(sheet_name) row = 0 for data_unit in data_list: col = 0 for data in data_unit: sheet.write(row, col, data) col += 1 row += 1 book.save(file_name) # 从Excel读取数据 # file_name:需要读取的文件名称 # sheet_name:需要读取的工作表名称(有默认值) def read_from_excel(file_name, sheet_name="sheet1"): try: book = xlrd.open_workbook
  • 使用ExcelDataReader从特定单元格开始读取Excel数据(Using ExcelDataReader to read Excel data starting from a particular cell)
    问题 我正在使用ExcelDataReader从C#中的Excel工作簿中读取数据。 但是我的Excel工作表的结构使得要读取的数据可以从任何特定的单元格开始,而不必是A1 。 请问有人可以建议一种使用ExcelDataReader吗? 回答1 如果您使用的是ExcelDataReader 3+ ,则会发现您的阅读器对象没有针对AsDataSet()任何方法,还需要为ExcelDataReader.DataSet安装另一个软件包,然后可以使用AsDataSet()方法。 另外,还没有IsFirstRowAsColumnNames的属性,而是需要在ExcelDataSetConfiguration内进行设置。 例子: using (var stream = File.Open(originalFileName, FileMode.Open, FileAccess.Read)) { IExcelDataReader reader; // Create Reader - old until 3.4+ ////var file = new FileInfo(originalFileName); ////if (file.Extension.Equals(".xls")) //// reader = ExcelDataReader.ExcelReaderFactory
  • pandas操作excel全总结
    pandas是基于Numpy创建的Python包,内置了大量标准函数,能够高效地解决数据分析数据处理和分析任务,pandas支持多种文件的操作,比如Excel,csv,json,txt 文件等,读取文件之后,就可以对数据进行各种清洗、分析操作了。首先,了解下pandas中两个主要的数据结构,一个是Series,另一个是DataFrame。Series一种增强的一维数组,类似于列表,由索引(index)和值(values)组成。DataFrame是一个类似表格的二维数据结构,索引包括列索引和行索引,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame的每一行和每一列都是一个Series。pandas读取excelpandas读取文件之后,将内容存储为DataFrame,然后就可以调用内置的各种函数进行分析处理。pandas对xlrd等模块进行了封装,可以很方便的处理excel文件,支持xls和xlsx等格式,需要提前安装模块pip install xlrdpandas.read_excel(filename, sep, header,encoding)「参数解释」filename:文件路径,可以设置为绝对路径或相对路径sep:分隔符,常用的有逗号 , 分隔、\t 分隔,默认逗号分隔,read_table默认是'\t'(也就是tab)切割数据集的header:指定表头
  • 上手Pandas,带你玩转数据(2)-- 使用pandas从多种文件中读取数据
    文章目录 pandas IO概述读取文件读取csv文件来几个示例:从 StringIO 对象中读取数据小插曲:中文报错SyntaxError: Non-UTF-8 code starting with '\xe6' in file 读取json文件读取Excel文件实操ExcelFile 类解析日期单元格转换 读取MySQL的数据库文件测试 pandas IO概述 关于pandas的IO,绝不止我之前写的那些,但是其他的格式我也没见过,所以就不写其他的了。 大体上有以下格式支持: 读取文件 读取csv文件 这里主讲read_csv函数,但是又不仅仅简单的讲一下read_csv函数。 先来看一下函数原型: def read_csv(filepath_or_buffer: PathLike[str], # 文件名字 sep: Any = lib.no_default, # 来自定义字段之间的分隔符 header: str = "infer", #当选择默认值或header=0时,将首行设为列名。如果列名被传入明确值就令header=None。注意,当header=0时,即使列名被传参也会被覆盖。 names: Any = None, # 列名列表的使用. 如果文件不包含列名,那么应该设置header=None。 列名列表中不允许有重复值. index_col: Any = None,
  • Fastest way to read large Excel xlsx files? To parallelize or not?
    My questions are: What is the fastest way to read large(ish) .xlsx Excel files into R? 10 to 200 MB xlsx files, with multiple sheets. Can some kind of parallel processing be used, e.g. each core reading a separate sheet of a multi-sheet Excel file? Is there any other kind of optimisation that can be performed? What I have understood (and what I haven't) so far: if reading from spinning disks, as I will, parallel processing may actually slow down the reading as multiple processes try to read from the same file. However, parallel process may help with things like converting and inferring data
  • 熊猫使用超链接read_excel(Pandas read_excel with Hyperlink)
    问题 我有一个要读入Pandas DataFrame的Excel电子表格: df = pd.read_excel("file.xls") 但是,电子表格的其中一列包含带有与之关联的超链接的文本。 如何访问Pandas中的基础超链接? 回答1 可以使用openpyxl来完成,我完全不确定使用Pandas可以实现。 这是我的操作方法: import openpyxl wb = openpyxl.load_workbook('yourfile.xlsm') ws = wb.get_sheet_by_name('Sheet1') print(ws.cell(row=2, column=1).hyperlink.target) 您还可以使用iPython,并设置一个等于超链接对象的变量: t = ws.cell(row=2, column=1).hyperlink 然后做t. 并按Tab键以查看可以使用该对象或从该对象访问的所有选项。 回答2 如slaw所评论的那样,它不抓取超链接,而仅抓取文本 这里text.xlsx在第9列中包含链接 from openpyxl import load_workbook workbook = load_workbook('test.xlsx') worksheet = workbook.active column_indices = [9] for row