如下图所示,希望能在打印的时候,使头两行为重复行,数据部分,按公司名分开,显示不同公司的数据。
import csvdef split_csv_by_company(csv_file): with open(csv_file, newline='', encoding='utf-8') as file: reader = csv.reader(file) table_name = next(reader) # 读取第一行作为表格名称 headers = next(reader) # 读取第二行作为标题行 current_company = None company_data = {} for row in reader: company_name = row[0] if company_name not in company_data: company_data[company_name] = [] company_data[company_name].append(row) for company_name, data in company_data.items(): save_data_to_file(company_name, table_name, headers, data)def save_data_to_file(company_name, table_name, headers, data): filename = f"{table_name[0]}_{company_name}.csv" with open(filename, 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerow(table_name) writer.writerow(headers) writer.writerows(data)# 调用示例split_csv_by_company('data.csv')
如果你会python,那非常简单,如果不会,那也不用看我这个了!
把数据处理成Map<CompanyName,List<CompanyData>> data
结构,把生成excel的代码封装成一个函数,循环这个Map, 传入CompanyName 和 List<CompanyData> 就可以啦
这个需要借助 Excel 本身的分页符和重复行功能。
配置分页符:https://www.grapecity.com.cn/developer/grapecitydocuments/exc...
配置顶部重复行:https://www.grapecity.com.cn/developer/grapecitydocuments/exc...
代码如下:
public void SplitData() { Workbook wb = new Workbook(); IWorksheet sheet = wb.getWorksheets().get(0); Object data = new Object[][]{ {"A", "A1", "A2"}, {"A", "A1", "A2"}, {"A", "A1", "A2"}, {"A", "A1", "A2"}, {"B", "B1", "B2"}, {"B", "B1", "B2"}, {"B", "B1", "B2"}, {"B", "B1", "B2"}, {"B", "B1", "B2"}, {"C", "C1", "C2"}, {"C", "C1", "C2"}, {"C", "C1", "C2"}, {"C", "C1", "C2"}, }; sheet.getRange("A1:C1").merge(); sheet.getRange("A1:C1").setValue("公司信息"); sheet.getRange("A2").setValue("公司名"); sheet.getRange("B2").setValue("数据1"); sheet.getRange("C2").setValue("数据2"); sheet.getRange("A3:C15").setValue(data); sheet.getHPageBreaks().add(sheet.getRange("A7")); sheet.getHPageBreaks().add(sheet.getRange("A12")); sheet.getPageSetup().setPrintTitleRows("$1:$2"); wb.save("output/SplitData.pdf");}
结果:
您可以使用 Python 中的 pandas 和 openpyxl 库来解决这个问题。Pandas 是一个强大的数据处理库,而 openpyxl 可以用来处理 Excel 文件。以下是一个简单的示例,说明如何将数据按照您的需求分割到不同的 Excel 文件中。
首先,您需要安装 pandas 和 openpyxl。在您的命令行中运行以下命令:
pip install pandas openpyxl
然后,您可以使用以下代码来实现您的需求:
import pandas as pd# 您的原始数据,这里假设为 csv 格式data = pd.read_csv('your_data.csv')# 按照公司名分组数据grouped_data = data.groupby('Company')# 创建一个新的 ExcelWriter 对象,这将允许我们将多个 pandas dataframe 写入多个工作表中with pd.ExcelWriter('output.xlsx') as writer: for name, group in grouped_data: # 将每个组的数据写入一个新的工作表 group.to_excel(writer, sheet_name=name, index=False)
这个脚本将创建一个名为 "output.xlsx" 的 Excel 文件,其中每个工作表都包含一个公司的数据。它首先将所有的数据读入一个 pandas DataFrame,然后按照 "Company" 列进行分组。最后,它将每个组的数据写入一个新的工作表。注意,我们通过将 index=False
传递给 to_excel
方法,去掉了 DataFrame 的索引列。
这个代码片段假定您的数据已经在 CSV 文件中并且已经包含了重复的行。如果您的数据不是这样的,那么您可能需要对代码进行一些调整以满足您的需求。
如何用Java将一个Excel的文件的数据读取到另一个Excel中? 我有两个excel文件,希望将A文件中的数据合并在B文件中。有没有推荐的方案
问题内容: 我已经搜索了stackoverflow,但是没有找到明确的答案。如何将数据从XLS文件的特定行和列读取到我的Android应用程序?如何读取XLS文件?我不想将其转换为CSV,因为在尝试将其转换时出现错误。 也许我可以使用此http://www.andykhan.com/jexcelapi/tutorial.html#reading,但我什至不知道如何将其导入到我的项目中。请帮忙。 问
能不能用 Java 实现把 Excel 文件转化为 PDF 我有一个excel文件,希望在后台用java转成一个pdf文件,要求信息不能丢失。
该编码能够读取excel文件中的小数据...但不读取excel文件中的大数据文件....如何进一步修改代码?
本文向大家介绍Java实现把excel xls中数据转为可直接插入数据库的sql文件,包括了Java实现把excel xls中数据转为可直接插入数据库的sql文件的使用技巧和注意事项,需要的朋友参考一下 我的一贯风格,代码说明一切。。 废话不多说了,直接给大家贴代码了,具体代码如下所示: 有关Java实现把excel xls中数据转为可直接插入数据库的sql文件的知识,小编就给大家介绍这么多,希望
本文向大家介绍在Vue里如何把网页的数据导出到Excel的方法,包括了在Vue里如何把网页的数据导出到Excel的方法的使用技巧和注意事项,需要的朋友参考一下 前言: 在做后台管理的时候,我们往往有需要把网页上面的数据导出到excel这样的需求,真实的企业项目里对应一些导出财务报表、员工信息、交易记录、考勤打卡记录…等等需求,本文将对此做探讨。 开始前补充: 网上是有些牛人已经把这个功能封装成组件